日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Atmosphere 1.0:支持Java/JavaScript的异步通信框架

發(fā)布時間:2023/12/15 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Atmosphere 1.0:支持Java/JavaScript的异步通信框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Atmosphere 1.0是一個新的Java/Scala/Groovy框架,它試圖將Web瀏覽器與應用服務器之間的通信抽象出來。在Web Socket、HTML5服務器端事件和其他特定于應用服務器的解決方案可用時,該框架可以透明地支持,此外還可將長輪詢作為一種備選方案。

\u0026#xD;\n

最初,Web應用程序是采用客戶端/服務器模型構建的,始終由客戶端向服務器發(fā)起連接。對于特定類型的應用,如儀表板(Dashboard)、報價器和在線聊天等,它們都需要實時通信功能,而傳統(tǒng)的HTTP請求/響應循環(huán)無法滿足其要求。在這些情況下,服務器必須能夠以異步方式(當事件可用時)向客戶端(Web瀏覽器)推送數據。

\u0026#xD;\n

隨著基于AJAX 的富互聯(lián)網應用(rich internet applications,RIA)的出現,這種需求變得尤為明顯。RIA不再刷新整個頁面,而是采用了一種更為動態(tài)的方法,當應用服務器上有新數據可用時,僅更新頁面的某些部分。最基本的解決方案是使用輪詢:客戶端連續(xù)不斷地向服務器詢問更新信息(可能基于一定的時間間隔)。這種方法非常簡單,不需要特殊的支持,但是可能存在帶寬方面的問題。而且如果有很多客戶端的話,即使沒有新數據可用,服務器也很容易就不堪重負了。

\u0026#xD;\n

異步通信的另一種實現方式是HTTP流(也稱Comet)。這種方案強制瀏覽器連接到服務器,而且在指定時間(也可以不限制時間)內保持連接。當服務器有事件需要推送到瀏覽器時,就可以使用這一持久連接。該方案也有些限制。持久連接是資源密集型的,可能被代理和防火墻意外關閉,而且瀏覽器對連接到每個應用服務器的連接數也有限制。

\u0026#xD;\n

以上方法都不是標準的解決方案。本質上,Comet是一個寬泛的術語,包含了遵循上述理念的一些實現。目前已經有些努力致力于WebSocket的標準化。WebSocket是一種新的網絡協(xié)議,它從一開始就是為支持異步通信而設計的。然而該協(xié)議需要Web瀏覽器和應用服務器雙方提供顯式地支持。只要雙方都支持WebSocket,就可以將HTTP連接“升級”為web socket。針對WebSocket的編程也有其自身的問題,因為當前每種應用服務器都有自己的API,這很容易導致供應商的封閉。

\u0026#xD;\n

Atmosphere是一個Java框架(也支持Groovy和Scala),可以作為以上各種方案之上的一個抽象層,使開發(fā)者無需處理底層的通信細節(jié),從而將精力集中在實際的業(yè)務邏輯上。開發(fā)者只需利用統(tǒng)一的Atmosphere API編程即可,由該API在背后提供對以下各場景的支持:

\u0026#xD;\n
  • WebSocket\u0026#xD;\n
  • HTML5 服務器端事件\u0026#xD;\n
  • HTTP流/Comet\u0026#xD;\n
  • 長輪詢\u0026#xD;\n
  • JSONP\u0026#xD;\n

同時,Atmosphere也提供了一個JavaScript模塊(支持jQuery),該模塊位于客戶端,負責將Web瀏覽器的異步支持功能抽象出來。這種抽象的核心理念是控制連接的兩端。詳細文檔參見:支持的應用服務器和瀏覽器(supported application servers and browsers)。

\u0026#xD;\n

Atmosphere的主要特性是在可行的情況下(比如可以使用WebSocket),能夠自動選擇最高效的方案,還支持一種備選方案(比如長輪詢)。它也有可能提前發(fā)現客戶端和服務器之間支持的方式。請注意:使用Nettosphere時,Atmosphere可以運行在 非servlet的容器中。

\u0026#xD;\n

除基本API之外,Atmosphere也提供了一些插件或擴充,能夠與以下框架集成:

\u0026#xD;\n
  • REST/Jersey\u0026#xD;\n
  • GWT/Vaadin\u0026#xD;\n
  • Socket.io\u0026#xD;\n
  • Spring\u0026#xD;\n
  • Guice\u0026#xD;\n
  • Wicket\u0026#xD;\n
  • PrimeFaces/RichFaces\u0026#xD;\n

更多信息,請訪問該項目的Wiki、示例、FAQ和Javadocs。

\u0026#xD;\n

作者Kostis Kapelonis是軟件工程師,專注于企業(yè)級應用開發(fā)。

\u0026#xD;\n

查看英文原文:Atmosphere 1.0: Asynchronous Communication For Java/JavaScript

總結

以上是生活随笔為你收集整理的Atmosphere 1.0:支持Java/JavaScript的异步通信框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。