一種網頁即時通訊方法
2023-05-17 14:28:06 1
專利名稱:一種網頁即時通訊方法
技術領域:
本發明涉及一種網頁即時通訊方法,尤其涉及一種基於HTTP協議的網頁即時通訊方法。
背景技術:
基於HTTP協議的網頁即時通訊,對於消息的接收,先後出現過三種技術方案,第一種是「簡單輪詢」,通過不停的向伺服器發出請求來獲得消息,缺點是信息不能真正達到即時,而且造成很多無用的請求次數。第二種是「長輪詢」,當客戶端(即瀏覽器)向伺服器發出請求後如果沒有期待的消息,連接不會馬上斷開,而是會持續30秒乃至更長的時間,而當收到消息後,會馬上斷開,然後建立一個新的連接,缺點是會長時間佔用跟伺服器的一個連接線程,且消息發送頻繁時,跟簡單輪詢實質上沒有差別。第三種是Coment流,其特點在於HTTP請求長時間不斷開,伺服器可以不停的向客戶端推送消息,缺點是每個客戶端都要獨佔線程,使得獨佔線程數過多。·
發明內容
本發明的目的在於,提供一種網頁即時通訊方法,該方法能夠克服傳統網頁即時通訊無用請求次數過多和獨佔線程數過多的缺點,合理分配和使用伺服器端資源(請求數和獨佔線程數),提高網頁即時通訊效率。為解決上述技術問題,本發明提供的技術方案如下一種網頁即時通訊方法通過在伺服器端設置通訊頻率模塊來判斷客戶端與伺服器端通訊頻率的大小,然後伺服器端根據客戶端與伺服器端的通訊頻率的大小動態的給客戶端分配伺服器資源。前述的網頁即時通訊方法中,所述的判斷客戶端與伺服器端的通訊頻率,是判斷客戶端與伺服器端的通訊頻率是否超過伺服器端的給定閾值。前述的網頁即時通訊方法中,所述的動態的給客戶端分配伺服器資源,是伺服器端根據客戶端與伺服器端的通訊頻率是否超過伺服器端的給定閾值,選擇Comment流方式與客戶端通訊或者選擇長輪詢方式與客戶端通訊。前述的網頁即時通訊方法中,所述的通訊頻率模塊前還設置計時模塊在一定時間後重新計時來優化通訊頻率模塊對客戶端與伺服器端的通訊頻率大小的判斷。前述的網頁即時通訊方法中,所述的通訊頻率模塊和計時模塊之間還設置次數判斷模塊判斷客戶端與伺服器端的通訊次數。前述的網頁即時通訊方法中,所述的次數判斷模塊用於判斷伺服器端和客戶端的通訊次數,當伺服器端和客戶端的通訊次數少於5次時,伺服器端跳過通訊頻率模塊,直接選擇長輪詢方式與客戶端通訊。前述的網頁即時通訊方法中,所述的客戶端與伺服器端的通訊頻率,指的是有效的通訊次數與時間的比值;伺服器端根據伺服器條件和用戶行為特點設定閾值。與現有技術相比,本發明採用上述技術方案,在伺服器端設置通訊頻率模塊來判斷客戶端與伺服器端通訊頻率的大小,然後伺服器端根據客戶端與伺服器端的通訊頻率的大小動態的給客戶端分配伺服器資源,能夠克服傳統網頁即時通訊無用請求次數過多和獨佔線程數過多的缺點;本發明能夠根據伺服器條件和用戶行為特點自動動態的分配伺服器資源,若100個用戶同時在線,用戶的通訊頻率在I次每秒以上計算,則一分鐘內可減少3000次以上的請求,減少不必要的請求對伺服器的佔用,伺服器使用效率能提高10%,從而提高了 20%。網頁即時通訊的效率。
圖I是本發明的流程圖。下面結合附圖和實施例對本發明作進一步的說明,但並不作為對本發明限制的依 據。
具體實施例方式實施例I。一種網頁即時通訊方法,通過在伺服器端設置通訊頻率模塊來判斷客戶端與伺服器端通訊頻率的大小,然後伺服器端根據客戶端與伺服器端的通訊頻率的大小動態的給客戶端分配伺服器資源。判斷客戶端與伺服器端的通訊頻率,是判斷客戶端與伺服器端的通訊頻率是否超過伺服器端的給定閾值。動態的給客戶端分配伺服器資源,是伺服器端根據客戶端與伺服器端的通訊頻率是否超過伺服器端的給定閾值,選擇Comment流方式與客戶端通訊或者選擇長輪詢方式與客戶端通訊。通訊頻率模塊前還設置計時模塊在一定時間後重新計時來優化通訊頻率模塊對客戶端與伺服器端的通訊頻率大小的判斷。通訊頻率模塊和計時模塊之間還設置次數判斷模塊判斷客戶端與伺服器端的通訊次數。具體使用時,如圖I所示,客戶端進入網頁後建立一個對伺服器的異步請求,並一直保持連接。當有消息發生時,如果推送次數少於5次,則伺服器端選擇長輪詢方式與客戶端通訊,以避免在第一條消息發出後比值誤差過大的問題;如果推送次數大於5次,伺服器端在推送前判斷其「通訊頻率」,即伺服器消息推送的次數與用戶在線時間的比值,在線時間以秒為單位,如果「通訊頻率」大於閾值,則伺服器端選擇Coment流方式與客戶端通訊;否則進入長輪詢的分支,伺服器每推送一次消息前必須重新計算通訊頻率。另外為了優化「通訊頻率」的計算,每隔一段時間(以5分鐘左右為宜)進行重新計時。通過這種動態配置的方法,當用戶通訊頻率高時,就會通過Coment流一直保持連接,從而大大的減少了請求次數,而當用戶通訊量少時,則通過長輪詢方式適當的增加請求次數,但不至於長時間的佔用伺服器線程,最終使伺服器的資源得到更充分更合理的利用。本發明中,閾值是伺服器端根據伺服器條件和用戶行為特點設定的。以100個同時在線的用戶為例,活躍跟非活躍用戶各50人,其中活躍用戶每秒接收一條消息,非活躍用戶每30秒接收一條消息,「通訊頻率」設為I秒/次,統計在I分鐘內各自產生的請求數和獨佔線程數。統計結果見表1,可見在動態策略下適當增加獨佔線程數,大大減少了請求次數,而且可以視具體情況來調整「通訊頻率」,找到適合自身的資源平衡點。表I:
權利要求
1.一種網頁即時通訊方法,其特徵在於通過在伺服器端設置通訊頻率模塊來判斷客戶端與伺服器端通訊頻率的大小,然後伺服器端根據客戶端與伺服器端的通訊頻率的大小動態的給客戶端分配伺服器資源。
2.根據權利要求I所述的網頁即時通訊方法,其特徵在於所述的判斷客戶端與伺服器端的通訊頻率,是判斷客戶端與伺服器端的通訊頻率是否超過伺服器端的給定閾值。
3.根據權利要求2所述的網頁即時通訊方法,其特徵在於所述的動態的給客戶端分配伺服器資源,是伺服器端根據客戶端與伺服器端的通訊頻率是否超過伺服器端的給定閾值,選擇Co_ent流方式與客戶端通訊或者選擇長輪詢方式與客戶端通訊。
4.根據權利要求3所述的網頁即時通訊方法,其特徵在於所述的通訊頻率模塊前還設置計時模塊在一定時間後重新計時來優化通訊頻率模塊對客戶端與伺服器端的通訊頻率大小的判斷。
5.根據權利要求4所述的網頁即時通訊方法,其特徵在於所述的通訊頻率模塊和計時模塊之間還設置次數判斷模塊判斷客戶端與伺服器端的通訊次數。
全文摘要
本發明公開了一種網頁即時通訊方法,通過在伺服器端設置通訊頻率模塊來判斷客戶端與伺服器端通訊頻率的大小,然後伺服器端根據客戶端與伺服器端的通訊頻率的大小動態的給客戶端分配伺服器資源。本發明採用上述技術方案,能夠克服傳統網頁即時通訊無用請求次數過多和獨佔線程數過多的缺點;本發明能夠根據伺服器條件和用戶行為特點自動動態的分配伺服器資源,提高伺服器使用效率,並且提高了網頁即時通訊的效率。
文檔編號H04L12/58GK102882773SQ20121040149
公開日2013年1月16日 申請日期2012年10月19日 優先權日2012年10月19日
發明者韋慶華 申請人:杭州也要買電子商務有限公司