一種基於瀏覽器的web即時通訊方法
2023-07-02 22:16:46 1
專利名稱:一種基於瀏覽器的web即時通訊方法
技術領域:
本發明涉及計算機網絡通信技術領域,更具體地說,涉及一種基於瀏覽器的web 即時通訊方法。
背景技術:
近年來,以瀏覽器為終端的實時通信系統,以其使用方便、簡潔、不受限制等特點, 已經被廣大用戶所接受,但是由於瀏覽器本身的特點,使其即時信息、狀態、消息通知等方面不能實時與用戶同步。可見解決瀏覽器終端與伺服器信息的實時同步,是提高用戶對瀏覽器終端產品的體驗的衡量指標之一。Web即時通訊由於瀏覽器本身的原因,瀏覽器只能通過發送http連結獲得返回內容。由於瀏覽器本身就是這種「拉」的方式來實現跟後臺的交互,所以要基於瀏覽器要實現 web即時通訊,現有普遍的做法(如圖1)都是使用「拉」的方式獲得伺服器的信息,需要不停地發起連結到伺服器查看是否有信息。採用此方法需要瀏覽器定時地發起請求,如果定時時間過長,則信息不能實時地提供給瀏覽器客戶端,如果定時時間過短,則瀏覽器會頻繁地發起請求,對伺服器產生很大的壓力,並且很多請求都是空請求,因為可能在此時間用戶並沒有變化的信息,這樣將導致伺服器的負擔會很大,有時候為了實現即時拿到一個信息會發送成千上萬的無用連結。
發明內容
本發明要解決的技術問題在於,針對現有技術的上述瀏覽器採用「拉」的方式通過不停的發送連接到伺服器建立連接,導致伺服器負擔大的缺陷,提供一種基於瀏覽器的web 即時通訊方法。本發明解決其技術問題所採用的技術方案是構造一種基於瀏覽器的web即時通訊方法,包括以下步驟Si、用戶登錄瀏覽器客戶端;S2、瀏覽器客戶端向伺服器發起http請求;S3、伺服器從線程池獲取線程處理瀏覽器客戶端發起的http連接,伺服器判斷其緩衝區是否有新信息,如果有,則執行步驟S7 ;如果沒有,則執行步驟S4 ;S4、伺服器使用NIO技術掛起連接,並釋放線程到線程池;S5、伺服器判斷連接是否超時,所述超時是指超過預設連接時間;如果超時,則從線程池獲取一個線程發送一個心跳信號給瀏覽器客戶端,返回步驟S2 ;否則執行步驟S6 ;S6、伺服器判斷是否有新信息,如果是,則執行步驟S7,否則繼續監控;S7、伺服器從線程池獲取線程,將新信息發送給瀏覽器客戶端,瀏覽器客戶端處理接收到的新信息,處理完成後返回步驟S2。在本發明的基於瀏覽器的web即時通訊方法中,所述步驟S5進一步包括,瀏覽器客戶端收到心跳信號後,不做任何處理直接返回步驟S2。
在本發明的基於瀏覽器的web即時通訊方法中,在建立http連接時,以異步的方式實現接入服務。在本發明的基於瀏覽器的web即時通訊方法中,所述新信息是由即時通信系統提{共。在本發明的基於瀏覽器的web即時通訊方法中,所述新信息包括所述即時通信系統的系統即時消息、聯繫人變化信息和系統通知中的一種或者多種。在本發明的基於瀏覽器的web即時通訊方法中,所述預設連接時間是10分鐘。實施本發明的基於瀏覽器的web即時通訊方法,具有以下有益效果瀏覽器客戶端向伺服器發起http請求後,在建立連接後在預設連接時間等待數據,在沒有新信息的時候採用NIO技術掛起連接,並釋放線程到線程池,這樣線程就可以處理其它連接,大幅度減輕了伺服器不必要的負擔,提高伺服器端的性能,減少伺服器的壓力。伺服器在檢測到有新信息時即時將新信息推到瀏覽器客戶端,極大減少了瀏覽器客戶端發送到伺服器的沒用連接,大大減輕了伺服器的壓力。
下面將結合附圖及實施例對本發明作進一步說明,附圖中圖1是現有的基於瀏覽器的web即時通訊方法流程圖;圖2是本發明的基於瀏覽器的web即時通訊方法流程圖。
具體實施例方式為了使本發明的目的更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。如圖1所示,本發明的基於瀏覽器的web即時通訊方法流程圖,包含以下步驟Si、用戶登錄瀏覽器客戶端;S2、瀏覽器客戶端向伺服器發起http請求;S3、伺服器從線程池獲取線程處理瀏覽器客戶端發起的http連接,伺服器判斷其緩衝區是否有新信息,如果有,則執行步驟S7 ;如果沒有,則執行步驟S4 ;S4、伺服器使用NIO技術掛起連接,並釋放線程到線程池;S5、伺服器判斷連接是否超時,超時是指超過預設連接時間;如果超時,則從線程池獲取一個線程發送一個心跳信號給瀏覽器客戶端,返回步驟S2 ;否則執行步驟S6 ;S6、伺服器判斷是否有新信息,如果是,則執行步驟S7,否則繼續監控;S7、伺服器從線程池獲取線程,將新信息發送給瀏覽器客戶端,瀏覽器客戶端處理接收到的新信息,處理完成後返回步驟S2。進一步的,在步驟S5中,瀏覽器客戶端收到心跳信號後,不做任何處理直接返回步驟S2 ο在建立http連接時,瀏覽器客戶端以異步的方式實現接入服務。在本實施例中, 瀏覽器客戶端使用ajax技術,發起連接到伺服器。ajax是主流瀏覽器都支持的與伺服器通訊的技術,所以使用ajax可以兼容目前的主流瀏覽器。同時無須安裝任何插件。
伺服器收到的新信息是由即時通信系統提供,該新信息包括通信系統的系統即時消息、聯繫人變化信息和系統通知中的一種或者多種。在本實施例中,預設連接時間是10分鐘,按照實際需要,也可以設置為其它時間。在本實施例中,在伺服器端採用「非阻塞」技術,即使用NIO技術掛起http連接, 當連接空閒了就掛起連接釋放處理的線程,這樣線程就可以處理其他的連接,大幅度減輕了伺服器不必要的負擔,提高的伺服器端的性能。基於「非阻塞」技術實現http長連接,大幅度減少連接數,同時提高伺服器端性能,實現即時通訊同時大幅度減少伺服器壓力。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種基於瀏覽器的web即時通訊方法,其特徵在於,包括以下步驟51、用戶登錄瀏覽器客戶端;52、瀏覽器客戶端向伺服器發起http請求;53、伺服器從線程池獲取線程處理瀏覽器客戶端發起的http連接,伺服器判斷其緩衝區是否有新信息,如果有,則執行步驟S7 ;如果沒有,則執行步驟S4 ;54、伺服器使用NIO技術掛起連接,並釋放線程到線程池;55、伺服器判斷連接是否超時,所述超時是指超過預設連接時間;如果超時,則從線程池獲取一個線程發送一個心跳信號給瀏覽器客戶端,返回步驟S2 ;否則執行步驟S6 ;56、伺服器判斷是否有新信息,如果是,則執行步驟S7,否則繼續監控;57、伺服器從線程池獲取線程,將新信息發送給瀏覽器客戶端,瀏覽器客戶端處理接收到的新信息,處理完成後返回步驟S2。
2.根據權利要求1所述的基於瀏覽器的web即時通訊方法,其特徵在於,所述步驟S5 進一步包括,瀏覽器客戶端收到心跳信號後,不做任何處理直接返回步驟S2。
3.根據權利要求1所述的基於瀏覽器的web即時通訊方法,其特徵在於,在建立http 連接時,以異步的方式實現接入服務。
4.根據權利要求1所述的基於瀏覽器的web即時通訊方法,其特徵在於,所述新信息是由即時通信系統提供。
5.根據權利要求4所述的基於瀏覽器的web即時通訊方法,其特徵在於,所述新信息包括所述即時通信系統的系統即時消息、聯繫人變化信息和系統通知中的一種或者多種。
6.根據權利要求1所述的基於瀏覽器的web即時通訊方法,其特徵在在於,所述預設連接時間是10分鐘。
全文摘要
本發明涉及一種基於瀏覽器的web即時通訊方法,包括以下步驟用戶登錄瀏覽器客戶端,向伺服器發起http請求,伺服器從線程池獲取線程處理瀏覽器客戶端發起的http連接,判斷其緩衝區是否有新信息,如果有,則伺服器將新信息發送給瀏覽器客戶端;如果沒有,則伺服器使用NIO技術掛起連接,並釋放線程到線程池;伺服器判斷連接是否超時,如果超時,則從線程池獲取一個線程發送一個心跳信號給瀏覽器客戶端,重新建立連接;否則伺服器判斷是否有新信息,如果是,則伺服器將新信息發送給瀏覽器客戶端,否則繼續監控。本發明實現了瀏覽器客戶端實時獲取信息,且在連接空閒時掛起連接,減輕了伺服器不必要的負擔,提高伺服器的性能。
文檔編號H04L29/08GK102413191SQ20111045420
公開日2012年4月11日 申請日期2011年12月30日 優先權日2011年12月30日
發明者林綠德 申請人:深圳市旗瀚軟體有限公司