滿店香的家

          學習+實踐=進步

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

                   這個包是用來支持bayeux協議的,兼容comet技術,什么是bayeux,請看如下:

          下面這些可以實現基于web的實時事件通知的方法:

              1.HTTP流:這種方法由存在于不間斷的HTTP連接響應中或某個XMLHttpRequest連接中的服務器數據流所組成。

            2.HTTP拉取方式:在這種傳統的方法中,客戶端以用戶可定義的時間間隔去檢查服務器上的最新數據。這種拉取方式的頻率要足夠高才能保證很高的數據精確度,
          但高頻率可能會導致多余的檢查,從而導致較高的網絡流量。而另一方面,低頻率則會導致錯過更新的數據。理想地,拉取的時間間隔應該等于服務器狀態改變的速度。

            3.反轉AJAX:服務流應用到AJAX,就是所謂的反轉AJAX 或者COMET 。它使得服務器在某事件發生時可以發送消息給客戶端,而不需要客戶端顯式的請求。
          目標在于達到狀態變化的實時更新。COMET使用了HTTP/1.1中的持續連接的特性。通過HTTP/1.1,除非另作說明,服務器和瀏覽器之間的TCP連接會一直保持連接狀態,
          直到其中一方發送了一條明顯的“關閉連接”的消息,或者有超時以及網絡錯誤發生。

            4.長時間輪詢:也就是所謂的異步輪詢,這種方式是純服務器端推送方式和客戶端拉取方式的混合。它是基于BAYEUX協議的。這個協議遵循基于主題的發布——訂閱機制。
          在訂閱了某個頻道后,客戶端和服務器間的連接會保持打開狀態,并保持一段事先定義好的時間。如果服務器端沒有事件發生,而發生了超時,
          服務器端就會請求客戶端進行異步重新連接。如果有事件發生,服務器端會發送數據到客戶端,然后客戶端重新連接

              注:Comet:基于 HTTP 長連接的“服務器推”技術

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

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

          主站蜘蛛池模板: 陵水| 曲麻莱县| 阳谷县| 霸州市| 老河口市| 江口县| 武功县| 雷波县| 双峰县| 延川县| 抚远县| 迁安市| 彭泽县| 宜阳县| 南木林县| 翁牛特旗| 洛扎县| 敖汉旗| 文水县| 长乐市| 如皋市| 凉城县| 阳高县| 扶风县| 衡阳市| 穆棱市| 新干县| 辛集市| 巴林左旗| 平顺县| 沙坪坝区| 米林县| 贵溪市| 云林县| 巴南区| 开鲁县| 永康市| 张掖市| 商城县| 甘洛县| 体育|