專利名稱:消息推送系統(tǒng)及其消息推送的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信,尤其涉及一種消息推送系統(tǒng)及其消息推送的方法。
背景技術(shù):
傳統(tǒng)模式的WEB應(yīng)用的工 作方式如下用戶向?yàn)g覽器發(fā)出請(qǐng)求;瀏覽器將請(qǐng)求發(fā)送給服務(wù)器;服務(wù)器響應(yīng)瀏覽器的請(qǐng)求,處理后將數(shù)據(jù)返回給瀏覽器;瀏覽器收到響應(yīng)數(shù)據(jù),解析后顯示結(jié)果。這種傳統(tǒng)的工作模式,只有用戶主動(dòng)地發(fā)出請(qǐng)求,瀏覽器端才會(huì)得到服務(wù)器端的更新。而在很多現(xiàn)實(shí)的應(yīng)用中,服務(wù)器端的更新需要即時(shí)地體現(xiàn)在瀏覽器端,比如即時(shí)通訊,實(shí)時(shí)監(jiān)控等。以即時(shí)通訊為例,其他用戶的登錄登出,狀態(tài)的改變,發(fā)送消息等,瀏覽器需要實(shí)時(shí)地反映服務(wù)器端的這些變化。傳統(tǒng)的用戶主動(dòng)請(qǐng)求的方式顯然無(wú)法滿足這種現(xiàn)實(shí)的需求。現(xiàn)有技術(shù)中,常采用以下方案來(lái)解決l、Flash XMLSocket實(shí)現(xiàn)方法在HTML頁(yè)面中嵌入一個(gè)使用XMLSocket類的Flash程序。JavaScript通過(guò)調(diào)用此Flash程序提供的套接口與服務(wù)器端的套接口進(jìn)行通信。JavaScript解析收到服務(wù)器端的XML格式的返回?cái)?shù)據(jù),控制HTML頁(yè)面的顯示內(nèi)容。此方案的缺點(diǎn)客戶端必須安裝Flash播放器插件;XMLSocket沒(méi)有HTTP隧道功能,可能會(huì)被防火墻阻止。2、Iframe 及 htmlfile 的流(streaming)方式實(shí)現(xiàn)方法在HTML頁(yè)面里嵌入一個(gè)隱藏巾貞(Iframe),將這個(gè)隱藏巾貞的src屬性設(shè)為對(duì)一個(gè)長(zhǎng)連接的請(qǐng)求,服務(wù)器端返回對(duì)瀏覽器端JavaScript函數(shù)的調(diào)用,瀏覽器端的JavaScript引擎在收到服務(wù)器返回的JavaScript調(diào)用時(shí)就會(huì)執(zhí)行代碼。此方案的缺點(diǎn)瀏覽器的進(jìn)度條會(huì)顯示頁(yè)面加載沒(méi)有完成,IE上方的圖標(biāo)會(huì)不停的轉(zhuǎn)動(dòng)。3、WebSocket 方式HTML引入了 WebSocket接口并且定義了一個(gè)全雙工的通信通道,通過(guò)一個(gè)單一的套接字在WEB上進(jìn)行操作,支持頁(yè)面使用WebSocket協(xié)議與服務(wù)器進(jìn)行全雙工的通信。此方案的缺點(diǎn)不同的瀏覽器對(duì)HTML5的支持力度及具體實(shí)現(xiàn)有差異,而且IE瀏覽器不支持這些新技術(shù)。
發(fā)明內(nèi)容
有鑒于此,有必要提供一種消息推送系統(tǒng)及其消息推送的方法,以實(shí)現(xiàn)在客戶端(瀏覽器)上及時(shí)體現(xiàn)服務(wù)器(后臺(tái))的數(shù)據(jù)變化。
本發(fā)明提供的消息推送系統(tǒng),包括客戶端與服務(wù)器,其中客戶端包括第一通信模塊,用于生成所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并將所述客戶端的標(biāo)識(shí)號(hào)與訂閱消息的類型發(fā)送至所述服務(wù)器;所述服務(wù)器包括第二通信模塊,用于接收所述客戶端的標(biāo)識(shí)號(hào)與訂閱消息的類型,并根據(jù)所述客戶端的標(biāo)識(shí)號(hào)與訂閱消息的類型生成客戶端代理對(duì)象;監(jiān)聽模塊,用于監(jiān)聽消息;其中所述第一通信模塊還用于發(fā)送消息請(qǐng)求,所述第二通信模塊還用于接收所述消息請(qǐng)求,并更新與所述客戶端的連接時(shí)間,所述第二通信模塊在所述監(jiān)聽模塊監(jiān)聽到消息時(shí)根據(jù)所述消息請(qǐng)求返回所述消息至所述客戶端,所述第一通信模塊還用于接收所述消息,并解析所述消息,控制頁(yè)面顯示。本發(fā)明提供的消息推送的方法用于服務(wù)器為客戶端推送消息,包括所述客戶端生成客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并發(fā)送所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型;所述服務(wù)器接收所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并根據(jù)所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型創(chuàng)建客戶端代理對(duì)象;所述服務(wù)器監(jiān)聽消息;所述客戶端發(fā)送消息請(qǐng)求;所述服務(wù)器接收所述消息請(qǐng)求,并更新與所述客戶端的連接時(shí)間;是否監(jiān)聽到消息;若是,則返回所述消息至所述客戶端;所述客戶端接收所述消息,并解析所述消息, 控制頁(yè)面顯示。本發(fā)明實(shí)施方式中的消息推送系統(tǒng)及其消息推送的方法,實(shí)現(xiàn)了服務(wù)器的消息及時(shí)在客戶端顯示。
圖I為本發(fā)明一實(shí)施方式中消息推送系統(tǒng)的模塊結(jié)構(gòu)圖;圖2為本發(fā)明一實(shí)施方式中消息推送方法中建立監(jiān)聽的流程圖;圖3為本發(fā)明一實(shí)施方式中消息推送方法中客戶端檢測(cè)以及重連的流程圖;圖4為本發(fā)明一實(shí)施方式中消息推送方法中服務(wù)器返回消息的流程圖。圖5為本發(fā)明一實(shí)施方式中消息推送方法中客戶端取消訂閱的流程圖;圖6為本發(fā)明一實(shí)施方式中消息推送方法中服務(wù)器清理客戶端代理對(duì)象的流程圖;圖7為本發(fā)明一實(shí)施方式中消息推送的流程圖。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。在本發(fā)明的描述中,術(shù)語(yǔ)“內(nèi)”、“外”、“縱向”、“橫向”、“上”、“下”、“頂”、“底”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明而不是要求本發(fā)明必須以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。請(qǐng)參閱圖1,圖I所示為本發(fā)明一實(shí)施方式中消息推送系統(tǒng)的模塊結(jié)構(gòu)圖。在本實(shí)施方式中,消息推送系統(tǒng)由客戶端10、服務(wù)器20以及網(wǎng)絡(luò)(圖未示)組成。在本實(shí)施方式中,客戶端10包括第一通信模塊110、計(jì)數(shù)模塊120、第一計(jì)時(shí)模塊130以及第一判斷模塊140。
在本實(shí)施方式中,服務(wù)器20包括第二通信模塊210、監(jiān)聽模塊220、第二判斷模塊230以及第二計(jì)時(shí)模塊240。在本實(shí)施方式中,第一通信模塊110,用于生成所述客戶端10的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并將所述客戶端10的標(biāo)識(shí)號(hào)與訂閱消息的類型發(fā)送至所述服務(wù)器20。第二通信模塊210,用于接收所述客戶端10的標(biāo)識(shí)號(hào)與訂閱消息的類型,并根據(jù)所述客戶端10的標(biāo)識(shí)號(hào)與訂閱消息的類型生成客戶端代理對(duì)象。監(jiān)聽模塊220用于監(jiān)聽消息。在本實(shí)施方式中,監(jiān)聽模塊220監(jiān)聽的消息類型為訂閱消息的類型。在本實(shí)施方式中,第一通信模塊110還用于發(fā)送消息請(qǐng)求,第二通信模塊210還用于接收所述消息請(qǐng)求,并更新與所述客戶端10的連接時(shí)間。在本實(shí)施方式中,第二通信模塊210在所述監(jiān)聽模塊220監(jiān)聽到消息時(shí)根據(jù)所述 消息請(qǐng)求返回所述消息至所述客戶端10,所述第一通信模塊110還用于接收所述消息,并解析所述消息,控制頁(yè)面顯示。在本實(shí)施方式中,計(jì)數(shù)模塊120用于在所述第一通信模塊110接收到所述消息時(shí)將超時(shí)次數(shù)置為“O”。第一計(jì)時(shí)模塊130用于所述第一通信模塊110發(fā)送所述消息請(qǐng)求時(shí)開始計(jì)時(shí)。在本實(shí)施方式中,第一計(jì)時(shí)模塊130在第一通信模塊110收到返回的消息時(shí)停止計(jì)時(shí)以及在計(jì)時(shí)時(shí)間超時(shí)時(shí)停止計(jì)時(shí)。第一判斷模塊140用于判斷所述第一計(jì)時(shí)模塊130計(jì)時(shí)是否超時(shí),其中,所述計(jì)數(shù)模塊120還用在所述第一計(jì)時(shí)模塊130超時(shí)時(shí)記錄超時(shí)次數(shù),所述第一判斷模塊140還用于判斷所述超時(shí)次數(shù)是否大于最大超時(shí)次數(shù),所述第一通信模塊110還用在所述超時(shí)次數(shù)大于最大超時(shí)次數(shù)時(shí)進(jìn)入連接偵測(cè)重連階段。在本實(shí)施方式中,所述第一判斷模塊110還用于判斷是否結(jié)束訂閱,所述監(jiān)聽模塊220在結(jié)束訂閱后取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。在本實(shí)施方式中,第二判斷模塊230,用于判斷所述監(jiān)聽模塊220中是否監(jiān)聽到消息,其中所述監(jiān)聽模塊220沒(méi)有監(jiān)聽到消息時(shí)將所述消息請(qǐng)求掛起。第二計(jì)時(shí)模塊240用于記錄所述消息請(qǐng)求的掛起時(shí)間,其中,所述第二判斷模塊230還用于判斷所述消息請(qǐng)求的掛起時(shí)間是否超過(guò)固定時(shí)間,所述第二通信模塊210在所述掛起時(shí)間超過(guò)固定時(shí)間時(shí)返回空消息至所述客戶端10。在本實(shí)施方式中,所述第二計(jì)時(shí)模塊240還用記錄所述客戶端代理對(duì)象連接所述客戶端10的時(shí)間。在本實(shí)施方式中,所述第二判斷模塊230還用于判斷所述客戶端代理對(duì)象連接所述客戶端10的時(shí)間是否超時(shí),所述監(jiān)聽模塊220還用于在所述客戶端代理對(duì)象連接所述客戶端的10時(shí)間超時(shí)時(shí)取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。請(qǐng)參閱圖2,圖2所示為本發(fā)明一實(shí)施方式中消息推送方法中建立監(jiān)聽的流程圖。在本實(shí)施方式中,在步驟S100,所述客戶端10生成客戶端10的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并通過(guò)第一通信模塊110發(fā)送所述客戶端10的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型。在步驟S102,所述服務(wù)器20接收所述客戶端10的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并根據(jù)所述客戶端10的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型創(chuàng)建客戶端代理對(duì)象。
請(qǐng)參閱圖3,圖3所示為本發(fā)明一實(shí)施方式中消息推送方法中客戶端檢測(cè)以及重連的流程圖。在步驟S200,客戶端10的第一通信模塊110發(fā)送消息請(qǐng)求。在步驟S201,客戶端10的第一計(jì)時(shí)器130開始計(jì)時(shí)。在本實(shí)施方式中,第一計(jì)時(shí)模塊130在第一通信模塊110收到返回的消息時(shí)停止計(jì)時(shí)以及在計(jì)時(shí)時(shí)間超時(shí)時(shí)停止計(jì)時(shí)。在步驟S202,客戶端10的第一判斷模塊140判斷所述第一計(jì)時(shí)模塊130計(jì)時(shí)是否超時(shí)。在本實(shí)施方式中,若第一計(jì)時(shí)模塊130計(jì)時(shí)時(shí)間超過(guò)25毫秒時(shí)為超時(shí),在本發(fā)明其他實(shí)施方式中,也可以設(shè)定為計(jì)時(shí)超過(guò)20毫秒或30毫秒為超時(shí)。若是第一計(jì)時(shí)模塊130計(jì)時(shí)超時(shí),在步驟S204,客戶端10的計(jì)數(shù)模塊120記錄超時(shí)次數(shù)。·
在步驟S206,客戶端10的第一判斷模塊140判斷所述超時(shí)次數(shù)是否大于最大超時(shí)次數(shù)。在本實(shí)施方式中,最大超時(shí)次數(shù)為3次。若是所述超時(shí)次數(shù)大于最大超時(shí)次數(shù),在步驟S208,客戶端10進(jìn)入連接偵測(cè)重連階段,然后進(jìn)入步驟S210。若是所述超時(shí)次數(shù)不大于最大超時(shí)次數(shù),則在步驟S210,客戶端10的第一判斷模塊140判斷是否結(jié)束訂閱。若是客戶端10結(jié)束訂閱,則在步驟S212,客戶端10關(guān)閉連接,取消訂閱。在步驟S214,服務(wù)器20的監(jiān)聽模塊220在結(jié)束訂閱后取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。若是客戶端10沒(méi)有結(jié)束訂閱,則在步驟S216,客戶端10繼續(xù)保持連接。請(qǐng)參閱圖4,圖4所示為本發(fā)明一實(shí)施方式中消息推送方法中服務(wù)器20返回消息的流程圖。在本實(shí)施方式中,在步驟S300,服務(wù)器20的第二通信模塊210接收消息請(qǐng)求,并更新與所述客戶端10的連接時(shí)間。在步驟S302,服務(wù)器20的第二判斷模塊230判斷監(jiān)聽模塊220是否監(jiān)聽到消息。若是監(jiān)聽模塊230監(jiān)聽到消息,則在步驟S304,第二通信模塊210返回所述消息至所述客戶端10。在步驟S306,所述客戶端10的第一通信模塊110接收所述消息,并解析所述消息,控制頁(yè)面顯示。若是監(jiān)聽模塊230沒(méi)有監(jiān)聽到消息,則在步驟S306,監(jiān)聽模塊220掛起所述消息請(qǐng)求。在步驟S308,服務(wù)器20的第二計(jì)時(shí)模塊240記錄所述消息請(qǐng)求的掛起時(shí)間,服務(wù)器20的第二判斷模塊230判斷所述消息請(qǐng)求的掛起時(shí)間是否超過(guò)固定時(shí)間。若所述掛起時(shí)間超過(guò)固定時(shí)間,則在步驟S310,服務(wù)器20的第二通信模塊210返回空消息至所述客戶端10。請(qǐng)參閱圖5,圖5所示為本發(fā)明一實(shí)施方式中消息推送方法中客戶端10取消訂閱的流程圖。在步驟S400,客戶端10接收返回的消息,計(jì)數(shù)模塊130將超時(shí)次數(shù)置為“O”。
在步驟S402,客戶端10解析返回的消息,控制頁(yè)面顯示。在步驟S404,客戶端10的第一判斷模塊140判斷是否結(jié)束訂閱。若是客戶端10結(jié)束訂閱,則在步驟S406,客戶端10關(guān)閉連接,取消訂閱。在步驟S408,服務(wù)器20的監(jiān)聽模塊220在結(jié)束訂閱后取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。若是客戶端10沒(méi)有結(jié)束訂閱,則在步驟S410,客戶端10繼續(xù)保持連接,發(fā)送消息請(qǐng)求。請(qǐng)參閱圖6,圖6所示為本發(fā)明一實(shí)施方式中消息推送方法中服務(wù)器20清理客戶端代理對(duì)象的流程圖。·
在步驟S500,服務(wù)器20的第二計(jì)時(shí)模塊240記錄所述客戶端代理對(duì)象連接所述客戶端10的時(shí)間。在步驟S502,服務(wù)器20判斷所述客戶端代理對(duì)象連接所述客戶端10的時(shí)間是否超時(shí)。在本實(shí)施方式中,所述客戶端代理對(duì)象連接所述客戶端10的時(shí)間超過(guò)80 100毫秒時(shí)為超時(shí)。若是客戶端代理對(duì)象連接所述客戶端10的時(shí)間超時(shí),則在步驟S504,所述服務(wù)器20取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。請(qǐng)參閱圖7,圖7所示為本發(fā)明一實(shí)施方式中消息推送的流程圖。A、客戶端10發(fā)起消息請(qǐng)求;B、服務(wù)器20收到消息請(qǐng)求,檢查是否有消息。如果沒(méi)有消息,則掛起消息請(qǐng)求;C、如果有消息,立即返回消息給客戶端IO ;D、在消息請(qǐng)求被掛起的過(guò)程中,如有新消息到達(dá),則喚醒消息請(qǐng)求,返回消息給客戶端10 ;E、服務(wù)器20在超時(shí)時(shí)間內(nèi)未收到新消息,返回空消息給客戶端10 ;F、客戶端10收到服務(wù)器20的返回的消息后,發(fā)起下一次消息請(qǐng)求;G、服務(wù)器20在關(guān)閉上一次連接后,收到下一次消息請(qǐng)求之前,如果有新消息,將消息暫存,等到一有消息請(qǐng)求,就將該消息返回至客戶端10。本發(fā)明實(shí)施方式中的消息推送系統(tǒng)及其消息推送的方法,實(shí)現(xiàn)了服務(wù)器20的消息及時(shí)在客戶端10顯示,且當(dāng)取消訂閱或者是客戶端10長(zhǎng)時(shí)間沒(méi)有與服務(wù)器20連接時(shí),取消消息監(jiān)聽,及時(shí)清理客戶端代理對(duì)象,減少了服務(wù)器20的負(fù)荷。雖然本發(fā)明參照當(dāng)前的較佳實(shí)施方式進(jìn)行了描述,但本領(lǐng)域的技術(shù)人員應(yīng)能理解,上述較佳實(shí)施方式僅用來(lái)說(shuō)明本發(fā)明,并非用來(lái)限定本發(fā)明的保護(hù)范圍,任何在本發(fā)明的精神和原則范圍之內(nèi),所做的任何修飾、等效替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種消息推送系統(tǒng),包括客戶端與服務(wù)器,其中 客戶端包括第一通信模塊,用于生成所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并將所述客戶端的標(biāo)識(shí)號(hào)與訂閱消息的類型發(fā)送至所述服務(wù)器; 所述服務(wù)器包括第二通信模塊,用于接收所述客戶端的標(biāo)識(shí)號(hào)與訂閱消息的類型,并根據(jù)所述客戶端的標(biāo)識(shí)號(hào)與訂閱消息的類型生成客戶端代理對(duì)象; 監(jiān)聽模塊,用于監(jiān)聽消息; 其中所述第一通信模塊還用于發(fā)送消息請(qǐng)求,所述第二通信模塊還用于接收所述消息請(qǐng)求,并更新與所述客戶端的連接時(shí)間,所述第二通信模塊在所述監(jiān)聽模塊監(jiān)聽到消息時(shí)根據(jù)所述消息請(qǐng)求返回所述消息至所述客戶端,所述第一通信模塊還用于接收所述消息,并解析所述消息,控制頁(yè)面顯示。
2.如權(quán)利要求I所述的消息推送系統(tǒng),其特征在于,所述客戶端還包括 計(jì)數(shù)模塊,用于在所述第一通信模塊接收到所述消息時(shí)將超時(shí)次數(shù)置為“O” ; 第一計(jì)時(shí)模塊,用于所述第一通信模塊發(fā)送所述消息請(qǐng)求時(shí)開始計(jì)時(shí); 第一判斷模塊,用于判斷所述第一計(jì)時(shí)模塊計(jì)時(shí)是否超時(shí),其中,所述計(jì)數(shù)模塊還用在所述第一計(jì)時(shí)模塊超時(shí)時(shí)記錄超時(shí)次數(shù),所述第一判斷模塊還用于判斷所述超時(shí)次數(shù)是否大于最大超時(shí)次數(shù),所述第一通信模塊還用在所述超時(shí)次數(shù)大于最大超時(shí)次數(shù)時(shí)進(jìn)入連接偵測(cè)重連階段。
3.如權(quán)利要求I所述的消息推送系統(tǒng),其特征在于,所述第一判斷模塊還用于判斷是否結(jié)束訂閱,所述監(jiān)聽模塊在結(jié)束訂閱后取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。
4.如權(quán)利要求I所述的消息推送系統(tǒng),其特征在于,所述服務(wù)器還包括 第二判斷模塊,用于判斷所述監(jiān)聽模塊中是否監(jiān)聽到消息,其中所述監(jiān)聽模塊沒(méi)有監(jiān)聽到消息時(shí)將所述消息請(qǐng)求掛起; 第二計(jì)時(shí)模塊,用于記錄所述消息請(qǐng)求的掛起時(shí)間,其中,所述第二判斷模塊還用于判斷所述消息請(qǐng)求的掛起時(shí)間是否超過(guò)固定時(shí)間,所述第二通信模塊在所述掛起時(shí)間超過(guò)固定時(shí)間時(shí)返回空消息至所述客戶端。
5.如權(quán)利要求4所述的消息推送系統(tǒng),其特征在于,所述第二計(jì)時(shí)模塊還用記錄所述客戶端代理對(duì)象連接所述客戶端的時(shí)間。
6.如權(quán)利要求5所述的消息推送系統(tǒng),其特征在于,所述第二判斷模塊還用于判斷所述客戶端代理對(duì)象連接所述客戶端的時(shí)間是否超時(shí),所述監(jiān)聽模塊還用于在所述客戶端代理對(duì)象連接所述客戶端的時(shí)間超時(shí)時(shí)取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。
7.一種消息推送的方法,用于服務(wù)器為客戶端推送消息,包括 所述客戶端生成客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并發(fā)送所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型; 所述服務(wù)器接收所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并根據(jù)所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型創(chuàng)建客戶端代理對(duì)象; 所述服務(wù)器監(jiān)聽消息; 所述客戶端發(fā)送消息請(qǐng)求; 所述服務(wù)器接收所述消息請(qǐng)求,并更新與所述客戶端的連接時(shí)間;是否監(jiān)聽到消息; 若是,則返回所述消息至所述客戶端;所述客戶端接收所述消息,并解析所述消息,控制頁(yè)面顯示。
8.如權(quán)利要求7所述的消息推送的方法,其特征在于,還包括 所述客戶端記錄所述消息請(qǐng)求發(fā)送的時(shí)間; 所述客戶端判斷所述消息請(qǐng)求是否超時(shí); 若是,則所述客戶端記錄超時(shí)次數(shù); 所述客戶端判斷所述超時(shí)次數(shù)是否大于固定值; 若是,則所述客戶端進(jìn)入連接偵測(cè)重連階段。
9.如權(quán)利要求I所述的消息推送的方法,其特征在于,還包括 所述客戶端判斷是否結(jié)束訂閱; 若是,則所述服務(wù)器在結(jié)束訂閱后取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。
10.如權(quán)利要求7所述的消息推送的方法,其特征在于,還包括 所述服務(wù)器判斷是否監(jiān)聽到消息; 若是沒(méi)有監(jiān)聽到消息,則所述服務(wù)器將所述消息請(qǐng)求掛起; 所述服務(wù)器記錄所述消息請(qǐng)求的掛起時(shí)間; 所述服務(wù)器判斷所述消息請(qǐng)求的掛起時(shí)間是否超過(guò)固定時(shí)間; 若所述掛起時(shí)間超過(guò)固定時(shí)間,則所述服務(wù)器返回空消息至所述客戶端。
11.如權(quán)利要求10所述的消息推送的方法,其特征在于,還包括 所述服務(wù)器記錄所述客戶端代理對(duì)象連接所述客戶端的時(shí)間。
12.如權(quán)利要求11所述的消息推送的方法,其特征在于,還包括 所述服務(wù)器判斷所述客戶端代理對(duì)象連接所述客戶端的時(shí)間是否超時(shí); 若所述客戶端代理對(duì)象連接所述客戶端的時(shí)間超時(shí),則所述服務(wù)器取消消息監(jiān)聽,清理所述客戶端代理對(duì)象。
全文摘要
一種消息推送系統(tǒng),包括客戶端與服務(wù)器,其中客戶端包括第一通信模塊,用于生成所述客戶端的標(biāo)識(shí)號(hào),設(shè)置訂閱消息的類型,并將其發(fā)送至所述服務(wù)器;服務(wù)器包括第二通信模塊,用于接收客戶端的標(biāo)識(shí)號(hào)與訂閱消息的類型,并生成客戶端代理對(duì)象;監(jiān)聽模塊,用于監(jiān)聽消息;其中第一通信模塊發(fā)送消息請(qǐng)求,第二通信模塊接收消息請(qǐng)求,并更新與所述客戶端的連接時(shí)間,第二通信模塊在監(jiān)聽模塊監(jiān)聽到消息時(shí)根據(jù)消息請(qǐng)求返回消息至客戶端,第一通信模塊接收所述消息,并解析所述消息,控制頁(yè)面顯示。本發(fā)明中的消息推送系統(tǒng)實(shí)現(xiàn)了服務(wù)器的消息及時(shí)在客戶端顯示。
文檔編號(hào)H04L29/08GK102904962SQ20121040844
公開日2013年1月30日 申請(qǐng)日期2012年10月23日 優(yōu)先權(quán)日2012年10月23日
發(fā)明者楊義明, 何洋 申請(qǐng)人:深圳市匯智集信息科技有限公司