隨筆-124  評論-49  文章-56  trackbacks-0


          來自:http://www.pussor.com/?p=3

          官網(wǎng):http://www.pushlets.com/

          Ajax等Web 2.0技術(shù)的廣泛應(yīng)用,推動了C/S向B/S的轉(zhuǎn)變,如今很多應(yīng)用如監(jiān)控、即時通信等系統(tǒng)都需要實時同步服務(wù)器端和客戶端的數(shù)據(jù)更新。Comet在這種需求下應(yīng)運而生,本文簡單介紹了基于Comet的開源框架Pushlet。

          Comet基礎(chǔ)

          Comet 是一個用于描述客戶端和服務(wù)器之間的交互的術(shù)語,即使用長期保持的 HTTP 連接來在連接保持暢通的情況下支持客戶端和服務(wù)器間的事件驅(qū)動的通信。

          —引用自“Comet的誘惑”

          傳統(tǒng)的web系統(tǒng)的工作流程是客戶端發(fā)出請求,服務(wù)器端進行響應(yīng),而Comet則是在現(xiàn)有技術(shù)的基礎(chǔ)上,實現(xiàn)服務(wù)器數(shù)據(jù)、事件等快速PUSH到客戶端,所以會出現(xiàn)一個術(shù)語”服務(wù)器推“技術(shù)。

          PUSH實現(xiàn)方式

          JSP/SERVLET PUSH

          原理:

          利用JSP/SERVEL技術(shù),在不關(guān)閉HTTP流的情況下PUSH數(shù)據(jù)到客戶端瀏覽器;

          實現(xiàn):

          基于 AJAX 的長輪詢(long-polling)方式

          AJAX 的出現(xiàn)使得 JavaScript 可以調(diào)用 XMLHttpRequest 對象發(fā)出 HTTP 請求,JavaScript 響應(yīng)處理函數(shù)根據(jù)服務(wù)器返回的信息對 HTML 頁面的顯示進行更新。使用 AJAX 實現(xiàn)“服務(wù)器推”與傳統(tǒng)的 AJAX 應(yīng)用不同之處在于:

          1. 服務(wù)器端會阻塞請求直到有數(shù)據(jù)傳遞或超時才返回。
          2. 客戶端 JavaScript 響應(yīng)處理函數(shù)會在處理完服務(wù)器返回的信息后,再次發(fā)出請求,重新建立連接。
          3. 當(dāng)客戶端處理接收的數(shù)據(jù)、重新建立連接時,服務(wù)器端可能有新的數(shù)據(jù)到達;這些信息會被服務(wù)器端保存直到客戶端重 新建立連接,客戶端會一次把當(dāng)前服務(wù)器端所有的信息取回。

          Pushlet實例

          以Pushlet中的ping案例來進行分析:

          1. 新建一個Web項目取名ping,并導(dǎo)入Pushlet的jar包;
          2. 在src目錄下配置sources.properties、pushlet.properties文件;
          3. webroot目錄下導(dǎo)入js-pushlet-client.js,js-pushlet-net.html;
          4. 新建TestEventPullSources.java;
          5. 新建index.html,引入js-pushlet-client.js;
          6. 新建pingok.jsp;
          7. 修改web.xml加上pushlet的servlet
          8. 打包、部署ping項目;



          實例1            Pushlet CookBook部分翻譯 + 注釋

          pushlet 2.0.3 源碼分析(服務(wù)器端)

          posted on 2010-04-23 13:38 junly 閱讀(6190) 評論(1)  編輯  收藏 所屬分類: other

          評論:
          # re: 開源框架Pushlet入門 2010-04-24 10:40 | 隔葉黃鶯
          這個要關(guān)注,B/S 結(jié)構(gòu),即時性,Push 是個話題。   回復(fù)  更多評論
            
          主站蜘蛛池模板: 饶河县| 客服| 新巴尔虎左旗| 井研县| 泰兴市| 怀柔区| 叙永县| 石家庄市| 沁阳市| 鄂州市| 浦北县| 南部县| 浠水县| 洪湖市| 中西区| 马关县| 文昌市| 阳信县| 肇源县| 太白县| 平顶山市| 泰安市| 闸北区| 边坝县| 景德镇市| 合江县| 郁南县| 靖安县| 伊宁县| 开江县| 洛浦县| 辽阳县| 崇阳县| 武宁县| 自治县| 内乡县| 乌什县| 锦州市| 思茅市| 峨眉山市| 凯里市|