一種融合通信Web即時消息實現系統的製作方法
2023-06-12 16:01:06 3
專利名稱:一種融合通信Web即時消息實現系統的製作方法
技術領域:
本發明涉及本發明涉及融合通信技術領域,尤其涉及融合通信裡面的Web即時消息的實現方法。
背景技術:
Web即時消息是基於瀏覽器頁面實現實時文本聊天,無須安裝客戶端,只要能打開網站就可以登錄與好友保持聯繫,由於只用到了 JavaScript與HTML等技術,容易實現跨平臺、不同瀏覽器之間聊天。目前比較流行的Web即時消息,包括sohu、QQ、MSN、Gtalk、阿里旺旺等,一般採用Ajax (—種創建交互式網頁應用的網頁開發技術)、長連接等技術。Ajax是定時輪詢方式工作,定期從伺服器獲取數據,在不刷新整個頁面的情況下更新數據,這種技術的缺點是產生大量連接請求、浪費流量、降低伺服器處理能力,同時也帶來消息延時等,要想提高消息實時性,只能通過輪詢頻率。基於長連接的伺服器推送技術,能使伺服器實時地將更新的信息回送到瀏覽器,而無須瀏覽器發出新請求。但是長連接技術受限於客戶端和瀏覽器,如智慧型手機、HTTP1. O瀏覽器不支持塊傳輸和單連接上承載並發請求,不能採用長連接技術,因為長連接技術需要在保持連接的過程中,客戶端定時往伺服器發送空閒數據包,以便使伺服器保持連接,如果長時間沒有數據包傳送,伺服器會認為客戶端離開,斷開連接。而且在移動網中,所謂的長連接是通不過代理的,移動網關對於http請求的最大超期時間設置很短,一般幾十秒,也不支持httpl.1的模擬心跳和塊傳輸。
發明內容
本發明所要解決的技術問題是提供一種消息實時性高、流量消耗低、客戶端輪詢次數少,同時能兼容HTTP1. O和HTTP1.1的融合通信Web即時消息實現系統。本發明解決上述技術問題的技術方案如下一種融合通信Web即時消息實現系統,包括Web瀏覽器、Web伺服器、Web即時消息網關和即時消息伺服器。所述Web瀏覽器用於向Web伺服器發送用戶HTTP請求,解析從Web伺服器中傳送過來的響應信息,並將響應信息以頁面形式展示給用戶。所述Web伺服器接收Web瀏覽器發送的用戶HTTP請求後,根據請求信息調用相應服務或應用API,並將HTTP請求推送給Web即時消息網關,維護HTTP會話,所述Web伺服器接收從Web即時消息網關傳送過來的響應信息,並將響應信息傳送給Web瀏覽器。所述Web即時消息網關向Web伺服器提供服務或API接口,通過XMPP通信協議與即時消息伺服器建立TCP長連接,接收從即時消息伺服器返回的響應信息,並將響應數據傳送給Web伺服器。所述即時消息伺服器響應HTTP請求,將響應信息傳送給Web即時消息網關,所述即時消息伺服器向Web瀏覽器提供XMPP即時通信服務。進一步,所述Web瀏覽器為支持HTTP1. O的Web瀏覽器或支持HTTP1.1的Web瀏覽器。
進一步,Web瀏覽器與即時消息伺服器建立連接後,啟動心跳定時器,當Web瀏覽器心跳定時器超時時,Web瀏覽器通過向Web即時消息網關發送模擬心跳消息。
進一步,Web即時消息網關收到模擬心跳後,關閉上個HTTP連接,通過建立新連接,與支持HTTP1. O的Web瀏覽器保持HTTP連接,以維持與即時消息伺服器會話長連接,實現Web瀏覽器與即時消息伺服器雙向通信。
進一步,Web即時消息網關將模擬心跳消息發送給即時消息伺服器,即時消息伺服器向支持HTTP1.1的瀏覽器返回空包,支持HTTP1.1的瀏覽器收到心跳包後退出前HTTP連接,發送新HTTP請求。
進一步,Web即時消息網關不返回Web瀏覽器的請求,保持與Web瀏覽器的HTTP連接,當收到即時消息伺服器返回的信息數據時,將數據封裝在響應包中,通過Web伺服器推送給客戶端的Web瀏覽器,實現BOSH協議。
進一步,即時消息伺服器收到登錄請求後,驗證用戶有效性,當用戶驗證無效時, 即時消息伺服器響應用戶驗證失敗,關閉連接;當用戶驗證有效時,即時消息伺服器響應用戶驗證成功,保持連接。
進一步,XMPP即時通信服務包括用戶權限管理、消息路由、離線消息存儲發送、好友名片及分組管理、好友在線狀態、關鍵字過濾、文件傳輸、聊天室。
進一步,所述Web瀏覽器以頁面形式展現給用戶的信息包括通訊錄、好友及好友在線狀態、聊天窗口、歷史記錄、輸入狀態。
本發明的有益效果是本發明結合了 BOSH (基於同步HTTP雙向流)和模擬心跳技術,採用多線程技術,既能有效減少客戶端輪詢次數,降低流量消耗,又能提高消息實時性, 同時兼容HTTP1. O和HTTP1.1。
圖1為本發明Web即時消息實現系統結構圖2為本發明Web即時消息實現系統工作原理流程圖。
具體實施方式
以下結合附圖對本發明的原理和特徵進行描述,所舉實例只用於解釋本發明,並非用於限定本發明的範圍。
圖1為本發明Web即時消息實現系統結構圖,如圖1所示,融合通信Web即時消息實現系統包括Web瀏覽器、Web伺服器、Web即時消息網關和即時消息伺服器。
Web瀏覽器,用於發送用戶聊天請求、解析伺服器返回的信息,兼容HTTP1.0和 HTTP1.1。支持大部分通用瀏覽器,如IE、谷歌瀏覽器、蘋果瀏覽器、火狐等。負責實現BOSH 協議、模擬心跳消息,當沒有新請求觸發時,定時向伺服器發送模擬心跳消息,以維持與伺服器會話長連接,實現瀏覽器與伺服器雙向通信。
Web伺服器接收用戶HTTP請求,調用相應服務或應用API,並將HTTP請求推送給 Web即時消息網關,維護http會話。
WEB即時消息網關向WEB伺服器提供服務或API接口,與即時消息伺服器建立長連接,實現XMPP通信協議。Web即時消息網關需要實現BOSH協議,實現BOSH協議的具體方案是Web即時消息網關不返回Web瀏覽器的請求,保持與Web瀏覽器的HTTP連接,當收到即時消息伺服器返回的數據時,將數據封裝在響應包中,通過Web伺服器推送給客戶端的Web瀏覽器。Web瀏覽器與即時消息伺服器建立連接後,啟動心跳定時器,當Web瀏覽器心跳定時器超時時,Web瀏覽器通過向Web即時消息網關發送模擬心跳消息。對於支持HTTP1. O的Web瀏覽器,Web即時消息網關收到模擬心跳後,關閉上個HTTP連接,通過建立新連接,與支持HTTP1. O的Web瀏覽器保持HTTP連接,於是伺服器總是保持著一個客戶端的請求。對於支持HTTP1.1的瀏覽器,Web即時消息網關將模擬心跳消息發送給即時消息伺服器,即時消息伺服器向支持HTTP1.1的瀏覽器返回空包,支持HTTP1.1的瀏覽器收到心跳包後退出前HTTP連接,發送新HTTP請求。Web即時消息網關通過這種機制判斷連接是否已經中斷,由 於不採用輪詢的機制,帶寬消耗少。Web瀏覽器101向Web伺服器發送用戶HTTP請求後,Web伺服器接收Web瀏覽器發送的用戶HTTP請求,根據請求信息調用相應服務或應用API,再將HTTP請求推送給Web即時消息網關。Web即時消息網關向Web伺服器提供服務或API接口,通過XMPP通信協議與即時消息伺服器建立TCP長連接。即時消息伺服器是融合通信系統文本聊天的核心功能體,即時消息伺服器向Web瀏覽器提供XMPP即時通信服務,XMPP即時通信服務包括用戶權限管理、消息路由、離線消息存儲發送、好友名片及分組管理、好友在線狀態、關鍵字過濾、文件傳輸、聊天室等。即時消息伺服器響應HTTP請求,將響應數據傳送給Web即時消息網關,Web伺服器接收從Web即時消息網關傳送過來的響應數據,並將響應數據傳送給Web瀏覽器,Web瀏覽器解析從Web伺服器中傳送過來的的返回信息並將返回的信息以頁面形式展示給用戶,頁面展現的內容包括通訊錄、好友及好友在線狀態、聊天窗口、歷史記錄、輸入狀態等。圖2為本發明Web即時消息實現系統工作原理流程圖。如圖所示,包括如下步驟步驟101 :打開瀏覽器,從Web伺服器獲取登錄頁面。步驟102 :輸入帳號,登錄。步驟103 : Js (JavaScript)封裝BOSH協議,向Web伺服器發送http登錄請求。步驟104 ffeb即時消息網關保持http連接,通過XMPP協議登錄即時消息伺服器。步驟105 ffeb即時消息網關與即時消息伺服器XMPP協議握手,建立TCP長連接。步驟106 :即時消息伺服器驗證用戶有效性,當用戶驗證無效時,即時消息伺服器響應用戶驗證失敗,關閉連接;當用戶驗證有效時,即時消息伺服器響應用戶驗證成功,保持連接。步驟107 :瀏覽器收到用戶驗證成功響應後,進入聊天頁面,展現聊天窗口、好友在線狀態、通訊錄及應用信息或連結。步驟108 :瀏覽器啟動心跳定時器,用於與Web即時消息網關保持http連接。步驟109 :當即時消息伺服器收到該瀏覽器用戶有關數據(如好友上線、來自好友的消息等),推送給該瀏覽器並保持連接,瀏覽器刷新顯示。步驟110 :當瀏覽器心跳定時器超時,向Web即時消息網關發送模擬心跳消息,httpl.1伺服器推送空包。
步驟1111 :支持HTTP1. O的Web瀏覽器,Web即時消息網關收到模擬心跳後,關閉上個HTTP連接,建立新連接,於是瀏覽器與Web即時消息網關總是保持HTTP連接,可以接收即時消息伺服器推送消息。
步驟1112 :支持HTTP1.1的瀏覽器收到心跳包後退出前HTTP連接,發送新HTTP請求。
本發明結 合了 BOSH (基於同步HTTP雙向流)和模擬心跳技術,採用多線程技術, 既能有效減少客戶端輪詢次數,降低流量消耗,又能提高消息實時性,同時兼容HTTP1. O和 HTTP1.1。
以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種融合通信Web即時消息實現系統,其特徵在於包括Web瀏覽器、Web伺服器、 Web即時消息網關和即時消息伺服器,所述Web瀏覽器用於向Web伺服器發送用戶HTTP請求,解析從Web伺服器中傳送過來的響應信息,並將響應信息以頁面形式展示給用戶;所述Web伺服器接收Web瀏覽器發送的用戶HTTP請求後,根據請求信息調用相應服務或應用API,並將HTTP請求推送給Web即時消息網關,維護HTTP會話,所述Web伺服器接收從Web即時消息網關傳送過來的響應信息,並將響應信息傳送給Web瀏覽器;所述Web即時消息網關向Web伺服器提供服務或API接口,通過XMPP通信協議與即時消息伺服器建立TCP長連接,接收從即時消息伺服器返回的響應信息,並將響應數據傳送給Web伺服器;所述即時消息伺服器響應HTTP請求,將響應信息傳送給Web即時消息網關,所述即時消息伺服器向Web瀏覽器提供XMPP即時通信服務。
2.根據權利要求1所述的一種融合通信Web即時消息實現系統,其特徵在於所述Web 瀏覽器為支持HTTP1. O的Web瀏覽器或支持HTTP1.1的Web瀏覽器。
3.根據權利要求1或2所述的一種融合通信Web即時消息實現系統,其特徵在於Web 瀏覽器與即時消息伺服器建立連接後,啟動心跳定時器,當Web瀏覽器心跳定時器超時時, Web瀏覽器通過向Web即時消息網關發送模擬心跳消息。
4.根據權利要求3所述的一種融合通信Web即時消息實現系統,其特徵在於Web即時消息網關收到模擬心跳後,關閉上個HTTP連接,通過建立新連接,與支持HTTP1. O的Web瀏覽器保持HTTP連接,以維持與即時消息伺服器會話長連接,實現Web瀏覽器與即時消息伺服器雙向通信。
5.根據權利要求3所述的一種融合通信Web即時消息實現系統,其特徵在於Web即時消息網關將模擬心跳消息發送給即時消息伺服器,即時消息伺服器向支持HTTP1.1的瀏覽器返回空包,支持HTTP1.1的瀏覽器收到心跳包後退出前HTTP連接,發送新HTTP請求。
6.根據權利要求1或2所述的一種融合通信Web即時消息實現系統,其特徵在於Web 即時消息網關不返回Web瀏覽器的請求,保持與Web瀏覽器的HTTP連接,當收到即時消息伺服器返回的信息數據時,將數據封裝在響應包中,通過Web伺服器推送給客戶端的Web瀏覽器,實現BOSH協議。
7.根據權利要求1或2所述的一種融合通信Web即時消息實現系統,其特徵在於即時消息伺服器收到登錄請求後,驗證用戶有效性,當用戶驗證無效時,即時消息伺服器響應用戶驗證失敗,關閉連接;當用戶驗證有效時,即時消息伺服器響應用戶驗證成功,保持連接。
8.根據權利要求1或2所述的一種融合通信Web即時消息實現系統,其特徵在於XMPP 即時通信服務包括用戶權限管理、消息路由、離線消息存儲發送、好友名片及分組管理、好友在線狀態、關鍵字過濾、文件傳輸、聊天室。
9.根據權利要求1或2所述的一種融合通信Web即時消息實現系統,其特徵在於所述Web瀏覽器以頁面形式展現給用戶的信息包括通訊錄、好友及好友在線狀態、聊天窗口、 歷史記錄、輸入狀態。
全文摘要
本發明涉及一種融合通信Web即時消息實現系統,包括Web瀏覽器、Web伺服器、Web即時消息網關、即時消息伺服器。所述Web瀏覽器,用於發送用戶聊天請求、解析伺服器返回的信息,以頁面形式展現給用戶;所述Web伺服器接收用戶HTTP請求,調用相應服務或應用API,維護HTTP會話;所述即時消息網關向Web伺服器提供服務或API接口,與即時消息伺服器建立長連接,實現XMPP通信協議和BOSH協議;所述即時消息伺服器實現與客戶端XMPP通信協議,並保持長連接;本發明結合了BOSH和模擬心跳技術,採用多線程技術,既能有效減少客戶端輪詢次數,降低流量消耗,又能提高消息實時性,同時兼容HTTP1.0和HTTP1.1。
文檔編號H04L12/58GK103001860SQ201210560190
公開日2013年3月27日 申請日期2012年12月20日 優先權日2012年12月20日
發明者鍾貴華 申請人:北京思特奇信息技術股份有限公司