emu in blogjava

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評(píng)論 :: 2 Trackbacks

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

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

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

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

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

          評(píng)論

          # re: Comet 2006-06-08 09:31 夕陽(yáng)(sanlly)
          其實(shí)利用xmlhttp來(lái)模擬長(zhǎng)連接的做法,很多地方都有應(yīng)用了,大同小異而已。
          個(gè)人意見(jiàn)是:如果需要http連接的數(shù)量級(jí)非常大的,最好不要使用...比如新消息的監(jiān)聽(tīng).

          下面是幻宇寫(xiě)的長(zhǎng)連接
          http://www.5djs.com/#viewthread.asp?tid=197  回復(fù)  更多評(píng)論
            

          # re: Comet 2006-06-08 10:02 emu
          謝謝樓上的建議和推薦。
          對(duì)于普通的web服務(wù)器,確實(shí)是難以同時(shí)維持大數(shù)目的鏈接的,以前的推模型的聊天室一般都只支持幾十人。不過(guò)我們?cè)诓捎眠@種技術(shù)的時(shí)候是采用了專(zhuān)門(mén)設(shè)計(jì)的高性能服務(wù)器來(lái)專(zhuān)門(mén)維持鏈接和轉(zhuǎn)發(fā)數(shù)據(jù),因此可以做到支持非常大量的同時(shí)鏈接數(shù)(據(jù)IM部門(mén)的同事說(shuō)一臺(tái)服務(wù)器幾十萬(wàn)以上)。  回復(fù)  更多評(píng)論
            

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

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

          # re: Comet 2006-08-30 13:56 王元濤
          xmlhttp在state=3的時(shí)候就可以開(kāi)始解析了,不過(guò)那時(shí)候javascript只能夠處理raw流。  回復(fù)  更多評(píng)論
            

          # re: Comet 2006-12-23 15:00 dh20156
          EMU,現(xiàn)在進(jìn)展如何?  回復(fù)  更多評(píng)論
            

          # re: Comet 2007-01-26 13:52 wsk
          @王元濤
          請(qǐng)問(wèn)什么是raw流呢,我在state=3時(shí)用responseText讀取數(shù)據(jù)的時(shí)候會(huì)被提示“需要的數(shù)據(jù)還不能用”的錯(cuò)誤,請(qǐng)問(wèn)這是為什么呢?
          鄙人郵箱:yanyujiangnan_wsk@sina.com  回復(fù)  更多評(píng)論
            

          # re: Comet[未登錄](méi) 2007-04-06 03:49 LUKE
          來(lái)我的BLOG 參考COMET相關(guān)訊息

          http://rd-program.blogspot.com  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 鄱阳县| 溆浦县| 平顶山市| 吉木乃县| 河津市| 灵山县| 鄂温| 德江县| 阜平县| 临安市| 潼南县| 金川县| 普洱| 稷山县| 承德市| 济阳县| 湘潭市| 乐昌市| 贵州省| 阿克陶县| 安泽县| 涿鹿县| 天气| 湟中县| 洛扎县| 咸丰县| 闵行区| 五台县| 商洛市| 吉安县| 弥勒县| 文成县| 堆龙德庆县| 安顺市| 手游| 临沭县| 社会| 隆化县| 浦县| 普格县| 手游|