欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于xmpp的可靠消息推送方法

文檔序號:9238138閱讀:1020來源:國知局
一種基于xmpp的可靠消息推送方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù)領(lǐng)域,具體涉及一種基于XMPP的可靠消息 推送方法。
【背景技術(shù)】
[0002] 在當(dāng)前環(huán)境下,智能手機常常處于未聯(lián)網(wǎng)狀態(tài),實時推送的信息常常在推送過程 中被丟失,端到端的信息推送的可靠性很難保證,因此需要一個可靠的信息推送機制來保 證所有信息能夠最終被推送到目的終端,即使傳輸過程中有終端曾處于未聯(lián)網(wǎng)狀態(tài)。本方 法為一種基于XMPP協(xié)議和Openfile中間件服務(wù)器消息列隊緩存的可靠信息推送方法,能 夠解決不穩(wěn)定網(wǎng)絡(luò)環(huán)境中智能終端消息推送丟失的問題。
[0003] XMPP的前身是Jabber,一個開源形式組織產(chǎn)生的網(wǎng)絡(luò)即時通信協(xié)議。 XMPP(ExtensibleMessagingandPresenceProtocol)協(xié)議基于XML的數(shù)據(jù)模型,是一種 用來在兩個地點之間傳遞小型的結(jié)構(gòu)化數(shù)據(jù)段的協(xié)議。XMPP協(xié)議傳輸?shù)氖桥c即時通訊相 關(guān)的指令。傳統(tǒng)方法中命令采用二進制的形式發(fā)送(比如QQ),或用純文本指令加空格加 參數(shù)加換行符的方式發(fā)送(比如MSN)。而XMPP傳輸?shù)募磿r通訊指令將協(xié)議的形式變成了 XML格式的純文本。XMPP的核心部分是一個在網(wǎng)絡(luò)上分片段發(fā)送XML的流協(xié)議。這個流協(xié) 議是XMPP的即時通訊指令的傳遞基礎(chǔ),XMPP用TCP傳的是XML流。通過XML,可以構(gòu)建一 個網(wǎng)關(guān)來實現(xiàn)XMPP網(wǎng)絡(luò)與非XMPP網(wǎng)絡(luò)之間無法實現(xiàn)互聯(lián)互通的問題,有助于增強即時通 信系統(tǒng)問的互通性。XML是一種可讀的文本格式,具有開放、靈活、輕便、易于創(chuàng)建和閱讀的 優(yōu)勢。
[0004] 基于XMPP協(xié)議的典型XML消息格式定義如下所示:
[0005]
[0006] 其中<presence>元素中的<status/ >定義狀態(tài),用以確定用戶狀態(tài); <message>元素用于兩個用戶之間發(fā)送消息,<body></body>中為消息內(nèi)容。
[0007] Openfire是基于XMPP協(xié)議的開源實時協(xié)作服務(wù)器,可用于易構(gòu)建高效率的通信 服務(wù)器,單臺服務(wù)器能支持上萬并發(fā)用戶,并支持基于Web的控制臺。由于采用XMPP協(xié)議, 各種采用XMPP協(xié)議的客戶端均能連接Openfire服務(wù)器。Openfire不僅自帶輕型數(shù)據(jù)庫, 且支持與Orcle,Mysql等主流關(guān)系型數(shù)據(jù)庫的集成。
[0008] 然而不論是XMPP,還是Openfire服務(wù)器,都是專注于消息發(fā)送格式和方式,并沒 有機制能保證消息是否可靠傳送到目的地。
[0009] Openfire服務(wù)器本身支持點到點的文件傳輸,即為兩客戶終端建立有效連接后, 直接傳輸文件流;對于離線文件的傳輸,Openfire也有自己的實現(xiàn)機制,即攔截離線文件, 并將該文件存儲到服務(wù)器上,同時在數(shù)據(jù)庫中維護該文件的相關(guān)信息等,待客戶終端在線 后再傳輸過去。Openfire的這種文件傳輸機制,從效率上來說,高并發(fā)訪問情況的出現(xiàn)很可 能大大降低了Openfire服務(wù)器的服務(wù)效率;從安全性上來說,如果一旦Openfire服務(wù)器崩 潰,不僅是文件信息,甚至文件也都容易丟失。此外,對于離線文件的傳輸,Openfire服務(wù) 器的傳輸可靠性也不是很好,如果接收方客戶終端永久丟失,那么該離線文件就需要永遠 存放在服務(wù)器中,這樣不僅浪費服務(wù)器空間,也浪費了Openfire需要維持的監(jiān)聽資源。對 于文件傳輸部分,為了避免這些弊端,建立專門的服務(wù)器用作存儲文件的中轉(zhuǎn)站,以可靠的 HTTP協(xié)議的方式進行文件上傳和下載,而基于XMPP協(xié)議的Openfire服務(wù)器僅僅作為文件 信息的傳輸中介。
[0010] 隨著移動互聯(lián)網(wǎng)的快速發(fā)展,企業(yè)業(yè)務(wù)場景多樣化的增加,對于即時通訊服務(wù)的 可靠性的需求也會日益增加。為確保消息以及含附件消息在推送過程中的可靠性,急需一 種高效穩(wěn)定的基于XMPP的推送方法。

【發(fā)明內(nèi)容】

[0011] 本發(fā)明的目的在于提供一種基于XMPP協(xié)議的可靠消息推送方法,用于在關(guān)鍵數(shù) 據(jù)的傳輸中,確保接收方能收到消息,發(fā)送方能確切知道消息是否推送成功。為了實現(xiàn)上述 目的,本發(fā)明提供一種基于XMPP協(xié)議的,具有完善消息確認的推送機制,包括含有附件的 文本消息和純文本消息。
[0012] 對于含有附件的文本消息,基于XMPP的可靠消息推送方法將該類消息分為兩個 部分,純文本消息和附件消息。該可靠消息推送方法包括如下過程:
[0013] P1 :客戶終端,即消息發(fā)送方先與中間件建立連接,中間件服務(wù)器通過安全傳輸層 協(xié)議TLS和簡單認證與安全層SASL對終端進行身份驗證;
[0014] P2:發(fā)送方將文字消息和附件消息,按照XMPP協(xié)議的要求進行封裝,將消息體封 裝到XMPP協(xié)議規(guī)定的Message元素的body節(jié)中;在消息發(fā)送前,會將該條附件消息存儲在 客戶終端的數(shù)據(jù)庫中;
[0015] P3 :發(fā)送方發(fā)送該條消息到中間件服務(wù)器,同時,發(fā)送方連接HTTP服務(wù)器,并通過 終端設(shè)備參數(shù)進行身份驗證,驗證通過后,上傳文件到HTTP服務(wù)器,并建立完整性標(biāo)識;中 間件服務(wù)器中的插件和HTTP服務(wù)器進行如下處理:
[0016] 1)中間件服務(wù)器將該條消息存入中間件服務(wù)器數(shù)據(jù)庫中,并建立文件完整性標(biāo) 識;
[0017] 2)HTTP服務(wù)器監(jiān)控文件上傳情況,有文件上傳成功則發(fā)送消息給openfire服務(wù) 器插件,更新文件完整性標(biāo)識;
[0018] 3)附件完全上傳成功后,HTTP服務(wù)器發(fā)送消息給中間服務(wù)器插件,插件監(jiān)聽到該 消息后將給消息的發(fā)送方發(fā)送一個回執(zhí)包,發(fā)送方收到這個回執(zhí)包以后將客戶終端數(shù)據(jù)庫 中相應(yīng)的消息記錄刪除,表示該條消息的文本和附件分別成功到達中間件服務(wù)器和HTTP 服務(wù)器,無需再保留;與此同時,HTTP服務(wù)器也發(fā)送附件的URL路徑給中間件服務(wù)器插件, 插件接收該消息后與原文本消息整合后存入中間件服務(wù)器數(shù)據(jù)庫中;
[0019] 4)中間件服務(wù)器判斷該條消息的接收方客戶終端是否在線,如果在線則將該消息 加入中間件服務(wù)器的待發(fā)送消息隊列中;中間件服務(wù)器中有線程依次發(fā)送消息隊列中的消 息;如果該條消息的接收方不在線,則這條消息會保留在服務(wù)器數(shù)據(jù)庫中,當(dāng)該條消息的接 收方上線時,才會從數(shù)據(jù)庫中調(diào)入到待發(fā)送隊列中;
[0020] P4:接收方整合了的消息后,會給中間件服務(wù)器發(fā)送回執(zhí)包。服務(wù)器接收到該條消 息對應(yīng)的回執(zhí)包后,進行如下操作:
[0021] 1)將該條消息寫入中間件服務(wù)器數(shù)據(jù)庫的歷史表中;
[0022] 2)將該條消息從中間件服務(wù)器的待發(fā)送消息隊列中刪除;
[0023] 3)如果中間件服務(wù)器未收到回執(zhí)包,則會一直發(fā)送消息給接收方客戶終端,直到 收到回應(yīng)消息;
[0024] P5 :接收方客戶終端通過解析該消息,獲得文件的下載地址和下載文件。
【附圖說明】
[0025] 為了易于說明,本發(fā)明由下述的具體實施及附圖作以詳細描述。
[0026] 圖1為含附件文本消息的可靠推送的流程示意圖。
【具體實施方式】
[0027] 因含附件文本消息的推送過程,從步驟和機制上包含了純文本消息的推送過程, 因此,下面僅給出一個示例來描述含附件的文本消息推送的全過程。
[0028] 發(fā)送方A通過中間件服務(wù)器發(fā)送一條含附件的消息給接收方B,附件中包含一張 名為lKFQLU9BEVMU_i.jpg的圖片,以及一個名為1KFQLU9BEVMU_2.wav的視頻文件。發(fā)送 方A通過自身設(shè)備參數(shù)與中間件服務(wù)器建立有效連接,身份驗證通過
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
东兰县| 日土县| 临城县| 镇远县| 海南省| 来凤县| 合阳县| 左云县| 房产| 井研县| 河西区| 昂仁县| 凌源市| 攀枝花市| 浦城县| 色达县| 斗六市| 福鼎市| 赣州市| 陆川县| 清镇市| 上林县| 枣庄市| 开化县| 京山县| 海阳市| 墨脱县| 崇文区| 新野县| 南溪县| 和静县| 威远县| 长汀县| 沅陵县| 海盐县| 大港区| 上虞市| 喜德县| 酒泉市| 平阴县| 高青县|