emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

          小半年前,和做IM的同事討論web IM的ajax實現的時候曾經提起過這樣一種做法:維持一個http長連接來等待后臺的聊天數據,當聊天數據一到就立刻把數據發送進這個http連接里面并斷開連接讓xmlhttp開始解析,這樣就可以做到客戶端對數據的即時響應。這一就是“推模型”的ajax版本。
          其實當時我們也懷疑meebo等web IM有可能已經采用了類似的技術,但是未經確認。由于考慮到IM部門有可能需要把這個技術申請專利加以保護,因此很長的一段時間里面不管是論壇上還是blog上我都沒有提及過這個想法。
          今天偶然在網上發現了一個叫做comet的技術(http://alex.dojotoolkit.org/?p=545),和我們的想法如出一轍,現在已經至少被應用在:

        1. GMail’s GTalk integration
        2. Jot Live
        3. Renkoo
        4. cgi:irc
        5. Meebo

          消息遲鈍到如此地步,汗顏中。

        6. 奇怪的是,似乎comet技術不需要斷開http連接,不知道是如何讓xmlhttp控件開始解析數據的(如果不用xmlhttp技術的話,那不就成了傳統的“推模型”了嗎?)。

          posted on 2006-06-07 14:20 emu 閱讀(1980) 評論(8)  編輯  收藏

          評論

          # re: Comet 2006-06-08 09:31 夕陽(sanlly)
          其實利用xmlhttp來模擬長連接的做法,很多地方都有應用了,大同小異而已。
          個人意見是:如果需要http連接的數量級非常大的,最好不要使用...比如新消息的監聽.

          下面是幻宇寫的長連接
          http://www.5djs.com/#viewthread.asp?tid=197  回復  更多評論
            

          # re: Comet 2006-06-08 10:02 emu
          謝謝樓上的建議和推薦。
          對于普通的web服務器,確實是難以同時維持大數目的鏈接的,以前的推模型的聊天室一般都只支持幾十人。不過我們在采用這種技術的時候是采用了專門設計的高性能服務器來專門維持鏈接和轉發數據,因此可以做到支持非常大量的同時鏈接數(據IM部門的同事說一臺服務器幾十萬以上)。  回復  更多評論
            

          # re: Comet 2006-07-19 16:34 holy
          感覺你們的方案還不能算是server push。如果別人連續發n個消息給你,豈不是要關閉n次連接,再打開n次連接?alex提出的comet根本就沒有斷開連接,所以才和ajax不同。gmail中的chat也沒有斷開,現在這種應用越來越多了。
          至于連接數量問題,不知到google怎么設計的,不過作為服務器集群牛人,他們應該很好處理了這個問題  回復  更多評論
            

          # re: Comet 2006-07-20 11:31 emu
          鏈接數量其實對我們不是問題了。但是用xmlhttp/xmlhttprequest的話,鏈接是必須要斷掉的。gmail的chat功能確實比較神奇。  回復  更多評論
            

          # re: Comet 2006-08-30 13:56 王元濤
          xmlhttp在state=3的時候就可以開始解析了,不過那時候javascript只能夠處理raw流。  回復  更多評論
            

          # re: Comet 2006-12-23 15:00 dh20156
          EMU,現在進展如何?  回復  更多評論
            

          # re: Comet 2007-01-26 13:52 wsk
          @王元濤
          請問什么是raw流呢,我在state=3時用responseText讀取數據的時候會被提示“需要的數據還不能用”的錯誤,請問這是為什么呢?
          鄙人郵箱:yanyujiangnan_wsk@sina.com  回復  更多評論
            

          # re: Comet[未登錄] 2007-04-06 03:49 LUKE
          來我的BLOG 參考COMET相關訊息

          http://rd-program.blogspot.com  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 沈丘县| 肃南| 平乐县| 东兰县| 渝中区| 涟水县| 汝南县| 德安县| 绥宁县| 新乡市| 德保县| 登封市| 海宁市| 宝坻区| 田东县| 铜陵市| 合阳县| 永丰县| 花莲县| 淅川县| 五家渠市| 从江县| 阿鲁科尔沁旗| 阳新县| 永德县| 乌拉特中旗| 伊吾县| 通化县| 铅山县| 临沭县| 柘城县| 漯河市| 来宾市| 横峰县| 石台县| 姜堰市| 永和县| 兴和县| 邻水| 佛山市| 永清县|