滿店香的家

          學(xué)習(xí)+實(shí)踐=進(jìn)步

          第五部分 包拆解 2)org.directwebremoting.bayeux包

                   這個(gè)包是用來支持bayeux協(xié)議的,兼容comet技術(shù),什么是bayeux,請(qǐng)看如下:

          下面這些可以實(shí)現(xiàn)基于web的實(shí)時(shí)事件通知的方法:

              1.HTTP流:這種方法由存在于不間斷的HTTP連接響應(yīng)中或某個(gè)XMLHttpRequest連接中的服務(wù)器數(shù)據(jù)流所組成。

            2.HTTP拉取方式:在這種傳統(tǒng)的方法中,客戶端以用戶可定義的時(shí)間間隔去檢查服務(wù)器上的最新數(shù)據(jù)。這種拉取方式的頻率要足夠高才能保證很高的數(shù)據(jù)精確度,
          但高頻率可能會(huì)導(dǎo)致多余的檢查,從而導(dǎo)致較高的網(wǎng)絡(luò)流量。而另一方面,低頻率則會(huì)導(dǎo)致錯(cuò)過更新的數(shù)據(jù)。理想地,拉取的時(shí)間間隔應(yīng)該等于服務(wù)器狀態(tài)改變的速度。

            3.反轉(zhuǎn)AJAX:服務(wù)流應(yīng)用到AJAX,就是所謂的反轉(zhuǎn)AJAX 或者COMET 。它使得服務(wù)器在某事件發(fā)生時(shí)可以發(fā)送消息給客戶端,而不需要客戶端顯式的請(qǐng)求。
          目標(biāo)在于達(dá)到狀態(tài)變化的實(shí)時(shí)更新。COMET使用了HTTP/1.1中的持續(xù)連接的特性。通過HTTP/1.1,除非另作說明,服務(wù)器和瀏覽器之間的TCP連接會(huì)一直保持連接狀態(tài),
          直到其中一方發(fā)送了一條明顯的“關(guān)閉連接”的消息,或者有超時(shí)以及網(wǎng)絡(luò)錯(cuò)誤發(fā)生。

            4.長(zhǎng)時(shí)間輪詢:也就是所謂的異步輪詢,這種方式是純服務(wù)器端推送方式和客戶端拉取方式的混合。它是基于BAYEUX協(xié)議的。這個(gè)協(xié)議遵循基于主題的發(fā)布——訂閱機(jī)制。
          在訂閱了某個(gè)頻道后,客戶端和服務(wù)器間的連接會(huì)保持打開狀態(tài),并保持一段事先定義好的時(shí)間。如果服務(wù)器端沒有事件發(fā)生,而發(fā)生了超時(shí),
          服務(wù)器端就會(huì)請(qǐng)求客戶端進(jìn)行異步重新連接。如果有事件發(fā)生,服務(wù)器端會(huì)發(fā)送數(shù)據(jù)到客戶端,然后客戶端重新連接

              注:Comet:基于 HTTP 長(zhǎng)連接的“服務(wù)器推”技術(shù)

                  Bayeux是Dojo基金會(huì)定義的一個(gè)協(xié)議。dwr在去年的時(shí)候就開始支持該協(xié)議,隨著dwr項(xiàng)目2008年初加入到Dojo基金會(huì),ajax技術(shù)(dwr)和comet(cometd)技術(shù)將會(huì)融合的更加緊密(說明:dwr,cometd現(xiàn)在都屬于dojo基金會(huì)下面的項(xiàng)目),本包將來估計(jì)會(huì)作很大的變化。ajax技術(shù)和comet技術(shù)的融合,參看使用 Jetty 和 Direct Web Remoting 編寫可擴(kuò)展的 Comet 應(yīng)用程序
                  這個(gè)包是dwr外部支持包,并未被其他包引用。
                  org.directwebremoting.bayeux.BayeuxClient                                                        Bayeux協(xié)議客戶端
                  org.directwebremoting.bayeux.BayeuxScriptConduit                                            Bayeux協(xié)議Script管道
                  org.directwebremoting.bayeux.BayeuxServletContextAttributeListener                  該監(jiān)聽器由web.xml注冊(cè),如果要使用推的技術(shù),那么你就必須注冊(cè),BayeuxServletContextAttributeListener,會(huì)調(diào)用BayeuxClient,按comet原理將script推送的客戶端。具體細(xì)節(jié)未作研究。
               
                  
                 

          posted on 2008-03-29 02:27 滿店香 閱讀(688) 評(píng)論(0)  編輯  收藏 所屬分類: dwr源碼分析

          主站蜘蛛池模板: 海晏县| 玉田县| 武鸣县| 承德市| 从化市| 县级市| 儋州市| 桦川县| 浮山县| 秭归县| 关岭| 南通市| 永登县| 信宜市| 伊吾县| 大同市| 正蓝旗| 西华县| 习水县| 天水市| 吉林省| 郁南县| 四川省| 广东省| 晴隆县| 莲花县| 林西县| 清涧县| 德庆县| 三明市| 唐海县| 万山特区| 南平市| 繁昌县| 旬邑县| 明水县| 中宁县| 长宁区| 平利县| 苏尼特右旗| 鹤壁市|