天天看點

基于comet伺服器推送技術(web實時聊天)

<a href="http://www.cnblogs.com/zengqinglei/archive/2013/03/31/2991189.html" target="_blank">http://www.cnblogs.com/zengqinglei/archive/2013/03/31/2991189.html</a>

Comet 也稱反向 Ajax 或伺服器端推技術.其思想很簡單:将資料直接從伺服器推到浏覽器,而不必等到浏覽器請求資料。

主要思想:伺服器端将資料推送到用戶端(浏覽器)

系統簡單說明如下:

{

系統所用資料庫:sqlite資料庫

  UserInfo:使用者資訊表

  UserRelation:使用者關系表

  MessageInfo:聊天資訊表

開發結構:

  結構圖:

    

基于comet伺服器推送技術(web實時聊天)

  三層開發:

    資料層--與sqlite資料庫之間的互動

    邏輯層--資料轉換

    實體層--資料對象

  Web服務:利用WebService對外提供公共的接口,主要提供用戶端與伺服器端資料之間的互動。

  用戶端(asp.net):利用comet中ajax反向技術推送聊天資訊。

項目操作示範效果:

  1.使用者登入(測試賬戶{liger_zql,12345},{漠然,12345})

  說明:用浏覽器開啟兩個頁籤浏覽Login.aspx頁面分别如下

  

基于comet伺服器推送技術(web實時聊天)
基于comet伺服器推送技術(web實時聊天)

  2.聊天界面

  登入成功後,兩頁籤分别跳轉到如下界面:輕按兩下線上好友中的行,則可開始進行聊天。

  liger_zql聊天界面:

基于comet伺服器推送技術(web實時聊天)

  漠然聊天界面:

基于comet伺服器推送技術(web實時聊天)

  其中聊天過程是使用了comet推送技術。

  3.使用者注冊界面

基于comet伺服器推送技術(web實時聊天)

}

項目中comet推送技術

  用戶端

基于comet伺服器推送技術(web實時聊天)
基于comet伺服器推送技術(web實時聊天)

  伺服器端:

基于comet伺服器推送技術(web實時聊天)
基于comet伺服器推送技術(web實時聊天)

其中(項目網站--WebChat_ServerPush和伺服器端處理--ServerPushHttpHandler)需要在Web.config配置檔案中做出如下配置:

Comet是一個web應用模型,在該模型中,請求被發送到伺服器端并保持一個很長的存活期,直到逾時或是有伺服器端事件發生。在該請求完成後,另一個長生存期的Ajax請求就被送去等待另一個伺服器端事件。使用Comet的話,web伺服器就可以在無需顯式請求的情況下向用戶端發送資料。

Comet的一大優點是,每個用戶端始終都有一個向伺服器端打開的通信鍊路。伺服器端可以通過在事件到來時立即送出(完成)響應來把事件推給用戶端,或者它甚至可以累積再連續發送。因為請求長時間保持打開的狀态,故伺服器端需要特别的功能來處理所有的這些長生存期請求。

最後預祝有需要了解該技術的程式猿天天向上!!!(~ o ~)~zZ