前言  時至今日,用戶期待的是可通過web訪問快速、動態的應用。這一文章系列展示了如何使用反向Ajax(Reverse Ajax)技術來開發事件驅動的web應用。系 " /> 一区二区三区内射美女毛片,JAVAPARSER丰满白老师,国产成人无码精品久久久按摩

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

反向Ajax,第3部分:Web服務器和Socket.IO

  英文原文:Reverse Ajax, Part 3: Web servers and Socket.IO
  前言

  時至今日,用戶期待的是可通過web訪問快速、動態的應用。這一文章系列展示了如何使用反向Ajax(Reverse Ajax)技術來開發事件驅動的web應用。系列的第1部分介紹了反向Ajax、輪詢(polling)、流(streaming)、Comet和長輪詢(long polling)。你已經了解了Comet是如何使用HTTP長輪詢的,這是可靠地實現反向Ajax的最好方式,因為現有的所有瀏覽器都提供支持。系列的第2部分說明了如何使用WebSocket來實現反向Ajax,一些代碼例子被用來幫助說明WebSocket、FlashSocket、服務器端的約束、請求作用域(request-scoped)服務以及暫停長生存期請求等。

  在本篇文章中,我們深入細節,討論在web應用中使用不同web容器和API(Servlet 3.0和Jetty Continuations)的Comet和WebSocket,了解如何通過使用諸如Socket.IO一類的抽象庫來透明地使用Comet和Websocket。Socket.IO使用功能檢測來確定連接是使用WebSocket、Ajax長輪詢、Flash還是其他方式來建立。

  前提條件

  理想情況下,要充分體會本文的話,你應該對JavaScrpit和Java有一定的了解。本文中創建的例子是使用Google Guice來構建的,這是一個使用Java編寫的依賴注入框架。若要讀懂文中所談內容,你應該要熟悉諸如Guice、Spring或是Pico一類的依賴注入框架的概念。

  若要運行本文中的例子,你還需要最新版本的Maven和JDK(參見參考資料)。

  Comet和WebSocket的服務器端解決方案

  你在第1部分內容中已經了解到了,Comet(長輪詢或是流)需要服務器端能夠暫停某個請求,并在一個可能的長延遲之后恢復或是完成該請求。第2部分內容描述了服務器端如何使用非阻塞式的I/O功能來處理大量的連接,以及它們只能使用線程來服務請求(每個請求一個線程模式)。你也已經了解到了WebSocket的使用是服務器端依賴的,且并非所有的服務器都支持WebSocket。

  本節內容說明了如果適用的話,那么在Jetty、Tomcat和Grizzly等web服務器上是如何使用Comet和WebSocket的。本文提供的源代碼包含了Jetty和Tomcat的一個聊天web應用例子。本節內容還討論了下面的這些應用服務器:Jboss、Glassfish和WebSphere所支持的API。

  Jetty

  Jetty是一個web服務器,支持Java Servlet 3.0規范、WebSocket和其他的許多集成規范。Jetty:

  1. 功能強大且靈活

  2. 易于嵌入

  3. 支持虛擬主機、會話集群和許多可很容易地通過用于Google App Engine的托管服務的Java代碼或是XML來配置的功能。

  核心的Jetty項目由Eclipse Foundation打理。

  從版本6開始,Jetty加入了一個被稱作Jetty Continuation(Jetty延續)的異步API,該API允許請求被暫停并在之后被恢復。表1給出了所支持的規范和Jetty的主要版本系列的API之間的一個對照關系。

  表1. Jetty的版本和支持

SupportsJetty 6Jetty 7Jetty 8
Non-blocking I/OXXX
Servlet 2.5XXX
Servlet 3.0 XX
Jetty Continuations (Comet)XXX
WebSockets XX

  若要實現使用Comet的反向Ajax的話,你可以使用Jetty的Continuation API,如清單1所示:

  清單1. 用于Comet的Jetty Continuation API

// 暫停一個來自servlet方法(get、post......)的請求:
protected
void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Continuation continuation
= ContinuationSupport.getContinuation(req);
// 可選的做法,設置超時以避免請求掛起過久
continuation.setTimeout(0);
// 掛起請求
continuation.suspend();
// 保存引用,以備將來另一線程使用
continuations.offer(continuation);
}
// 然后,來自另一個想給客戶發送事件的線程:
while (!continuations.isEmpty()) {
Continuation continuation
= continuations.poll();
HttpServletResponse response
=
(HttpServletResponse) continuation.getServletResponse();
// 向響應中寫入
continuation.complete();
}

it知識庫反向Ajax,第3部分:Web服務器和Socket.IO,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 暖暖视频 免费 高清 日本8 | 国产成人啪精品视频免费网 | 骚妇BB双飞插 | 久久精品观看影院2828 | 男人狂躁进女人免费视频公交 | 九九精彩视频在线观看视频 | 97超碰在线视频 免费 | 国产产一区二区三区久久毛片国语 | 热九九99香蕉精品品 | 亚洲精品6久久久久中文字幕 | 校花在公车上被内射好舒 | 中文字幕午夜乱理片 | 色小姐.com | 精品久久久亚洲精品中文字幕 | 天天拍拍国产在线视频 | 亚洲粉嫩美白在线 | 与子敌伦刺激对白亂輪亂性 | 快播成电影人网址 | 国语自产偷成人精品视频 | 琪琪see色原网站在线观看 | 夜里18款禁用的免费B站动漫 | BL低喘贯穿顶弄老师H | 国产成人在线观看网站 | 久久国产乱子伦精品免费不卡 | 精品含羞草免费视频观看 | 259luxu高跟黑色丝袜系列 | 国产毛片A级久久久不卡精品 | 久久99精品AV99果冻 | 色戒无删减流畅完整版 | 羞羞影院午夜男女爽爽免费 | 欧美性暴力变态xxxx | 无码AV免费精品一区二区三区 | 看电影来5566一区.二区 | 色综合伊人色综合网站下载 | 寂寞少妇直播 | 果冻传媒2021一二三区 | 中文人妻熟妇精品乱又伦 | 欧美肥婆性生活 | 果冻传媒免费观看 | 欧美日韩中文国产一区 | 久久精品WWW人人爽人人 |