一種實時網(wǎng)站推送消息的方法
【專利摘要】本發(fā)明涉及軟件開發(fā)【技術(shù)領(lǐng)域】,具體涉及一種實時網(wǎng)站推送消息的方法。本發(fā)明通過web客戶端發(fā)送請求到服務(wù)端,服務(wù)器端阻塞請求直到有數(shù)據(jù)傳遞或超時才返回;之后客戶端JavaScript響應(yīng)處理函數(shù)在處理完服務(wù)器返回的信息后,再次發(fā)出請求,重新建立連接;當客戶端處理接收的數(shù)據(jù)、重新建立連接時,服務(wù)器端可能有新的數(shù)據(jù)到達;這些信息會被服務(wù)器端保存直到web客戶端重新建立連接;客戶端一次將當前服務(wù)器端所有的信息取回;從而網(wǎng)站用戶可以實時接收到服務(wù)端發(fā)送的消息,避免消息接收滯后。本發(fā)明服務(wù)器與客戶端的實時通信。
【專利說明】 一種實時網(wǎng)站推送消息的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件開發(fā)【技術(shù)領(lǐng)域】,具體涉及一種實時網(wǎng)站推送消息的方法。
【背景技術(shù)】
[0002]現(xiàn)在是信息化時代,信息化使人類以更快更便捷的方式獲得并傳遞人類創(chuàng)造的一切文明成果。信息的滯后,會帶來一些不必要的麻煩,甚至是重大的經(jīng)濟損失。信息的及時性就顯得尤為重要,在第一時間對獲取的信息作出響應(yīng)。.
【發(fā)明內(nèi)容】
[0003]本發(fā)明解決的技術(shù)問題在于提供一種實時網(wǎng)站推送消息的方法,為用戶提供一種及時、聞效的獲取?目息的方法。
[0004]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0005]通過web客戶端發(fā)送請求到服務(wù)端,服務(wù)器端阻塞請求直到有數(shù)據(jù)傳遞或超時才返回;之后客戶端JavaScript響應(yīng)處理函數(shù)在處理完服務(wù)器返回的信息后,再次發(fā)出請求,重新建立連接;當客戶端處理接收的數(shù)據(jù)、重新建立連接時,服務(wù)器端可能有新的數(shù)據(jù)到達;這些信息會被服務(wù)器端保存直到web客戶端重新建立連接;客戶端一次將當前服務(wù)器端所有的信息取回;從而網(wǎng)站用戶可以實時接收到服務(wù)端發(fā)送的消息,避免消息接收滯后。
[0006]所述的方法包括如下步驟:
[0007]第I步、首先客戶端和服務(wù)端交互采用的Bayeux協(xié)議;
[0008]第2步、客戶端向服務(wù)端(/meta/handshake頻道上)發(fā)起握手請求;
[0009]第3步、服務(wù)端收到握手請求,BayeuxServer創(chuàng)造了一個半服務(wù)器對象的實例;月艮務(wù)端處理完握手請求后,發(fā)送響應(yīng)給客戶端;
[0010]第4步、客戶端收到服務(wù)端處理握手請求的響應(yīng),如果成功,則:
[0011]a.向服務(wù)端發(fā)起訂閱服務(wù)的請求;
[0012]b.開始與服務(wù)端的心跳機制,來交換連接的信息;
[0013]第5步、服務(wù)端再啟動時初始化兩個服務(wù)頻道
[0014]a./service/privatechat 自定義頻道
[0015]b./service/joinlisten 自定義頻道
[0016]第6步、客戶端向服務(wù)端發(fā)起訂閱/service/privatechat服務(wù),此服務(wù)用來實現(xiàn)用戶之間的聊天;
[0017]第7步、開始心跳機制;
[0018]第8步、心跳機制,建立HTTP長輪詢;
[0019]第9步、心跳機制,允許客戶端檢測服務(wù)器是否關(guān)閉了,并允許服務(wù)端檢測客戶端是否關(guān)閉了;
[0020]第10步、客戶端和服務(wù)器之間的連接的消息一直都有,直至任何一方?jīng)Q定中斷并發(fā)送一個disconnect的消息;
[0021]第11步、客戶端可以向服務(wù)端/service/joinlisten頻道發(fā)送請求;
[0022]第12步、所有初始化工作都已準備完畢,客戶端之間就可以任意發(fā)送信息。
[0023]本發(fā)明的有益效果是:通過實時網(wǎng)站推送消息的方法,讓用戶能及時的獲取有用的信息,監(jiān)控web應(yīng)用的訪問情況,實現(xiàn)及時發(fā)現(xiàn)問題、及時處理問題,大大減少客戶無法訪問應(yīng)用的時間,把損失降到最低。
【專利附圖】
【附圖說明】
[0024]下面結(jié)合附圖對本發(fā)明進一步說明:
[0025]圖1為本發(fā)明的業(yè)務(wù)流程圖。
【具體實施方式】
[0026]見附圖所示,本發(fā)明通過web客戶端發(fā)送請求到服務(wù)端,服務(wù)器端會阻塞請求直到有數(shù)據(jù)傳遞或超時才返回,之后客戶端JavaScript響應(yīng)處理函數(shù)會在處理完服務(wù)器返回的信息后,再次發(fā)出請求,重新建立連接。當客戶端處理接收的數(shù)據(jù)、重新建立連接時,月艮務(wù)器端可能有新的數(shù)據(jù)到達;這些信息會被服務(wù)器端保存直到web客戶端重新建立連接,客戶端會一次把當前服務(wù)器端所有的信息取回,讓網(wǎng)站用戶可以實時接收到服務(wù)端發(fā)送的消息,避免消息接收滯后,造成的損失!
[0027]下面我們以某個推送消息的應(yīng)用為例,講述該方法的實施:
[0028]第I步、首先客戶端和服務(wù)端交互采用的Bayeux協(xié)議;
[0029]第2步、客戶端向服務(wù)端(/meta/handshake頻道上)發(fā)起握手請求。Bayeux協(xié)議要求,一個新的客戶端發(fā)送的第一條消息是一個握手信息;
[0030]第3步、服務(wù)端收到握手請求,BayeuxServer創(chuàng)造了一個半服務(wù)器對象的實例(一個ServerSess1n)。服務(wù)端處理完握手請求后,發(fā)送響應(yīng)給客戶端;
[0031]第4步、客戶端收到服務(wù)端處理握手請求的響應(yīng),如果它是成功,接下來要做兩件事情:
[0032]a.向服務(wù)端發(fā)起訂閱服務(wù)的請求。
[0033]b.開始與服務(wù)端的心跳機制,來交換連接的信息;
[0034]第5步、服務(wù)端再啟動時初始化了兩個服務(wù)頻道
[0035]a./service/privatechat 自定義頻道
[0036]b./service/joinlisten 自定義頻道
[0037]第6步、客戶端向服務(wù)端發(fā)起訂閱/service/privatechat服務(wù),此服務(wù)用來實現(xiàn)用戶之間的聊天
[0038]第7步、開始心跳機制
[0039]第8步、心跳機制,建立HTTP長輪詢。
[0040]第9步、心跳機制,允許客戶端檢測服務(wù)器是否關(guān)閉了,并允許服務(wù)端檢測客戶端是否關(guān)閉了。
[0041]第10步、客戶端和服務(wù)器之間的連接的消息一直都有,直至任何一方?jīng)Q定中斷并發(fā)送一個disconnect的消息(發(fā)送/meta/disconnect斷開通道消息)
[0042]第11步、客戶端可以向服務(wù)端/service/joinlisten頻道發(fā)送請求
[0043]第12步、所有初始化工作都已準備完畢,客戶端之間就可以任意發(fā)送信息。
【權(quán)利要求】
1.一種實時網(wǎng)站推送消息的方法,其特征在于:通過web客戶端發(fā)送請求到服務(wù)端,月艮務(wù)器端阻塞請求直到有數(shù)據(jù)傳遞或超時才返回;之后客戶端JavaScript響應(yīng)處理函數(shù)在處理完服務(wù)器返回的信息后,再次發(fā)出請求,重新建立連接;當客戶端處理接收的數(shù)據(jù)、重新建立連接時,服務(wù)器端可能有新的數(shù)據(jù)到達;這些信息會被服務(wù)器端保存直到web客戶端重新建立連接;客戶端一次將當前服務(wù)器端所有的信息取回;從而網(wǎng)站用戶可以實時接收到服務(wù)端發(fā)送的消息,避免消息接收滯后。
2.根據(jù)權(quán)利要求1所述的實時網(wǎng)站推送消息的方法,其特征在于:所述的方法包括如下步驟: 第I步、首先客戶端和服務(wù)端交互采用的Bayeux協(xié)議; 第2步、客戶端向服務(wù)端(/meta/handshake頻道上)發(fā)起握手請求; 第3步、服務(wù)端收到握手請求,BayeuxServer創(chuàng)造了一個半服務(wù)器對象的實例;服務(wù)端處理完握手請求后,發(fā)送響應(yīng)給客戶端; 第4步、客戶端收到服務(wù)端處理握手請求的響應(yīng),如果成功,則: a.向服務(wù)端發(fā)起訂閱服務(wù)的請求; b.開始與服務(wù)端的心跳機制,來交換連接的信息; 第5步、服務(wù)端再啟動時初始化兩個服務(wù)頻道 a./service/privatechat 自定義步頁道 b./service/joinlisten 自定義步頁道 第6步、客戶端向服務(wù)端發(fā)起訂閱/service/privatechat服務(wù),此服務(wù)用來實現(xiàn)用戶之間的聊天; 第7步、開始心跳機制; 第8步、心跳機制,建立HTTP長輪詢; 第9步、心跳機制,允許客戶端檢測服務(wù)器是否關(guān)閉了,并允許服務(wù)端檢測客戶端是否關(guān)閉了 ; 第10步、客戶端和服務(wù)器之間的連接的消息一直都有,直至任何一方?jīng)Q定中斷并發(fā)送一個disconnect的消息; 第11步、客戶端可以向服務(wù)端/service/joinlisten頻道發(fā)送請求; 第12步、所有初始化工作都已準備完畢,客戶端之間就可以任意發(fā)送信息。
【文檔編號】H04L29/08GK104394212SQ201410683166
【公開日】2015年3月4日 申請日期:2014年11月23日 優(yōu)先權(quán)日:2014年11月23日
【發(fā)明者】龐毅, 關(guān)班記, 季統(tǒng)凱 申請人:國云科技股份有限公司