有人可以解釋一下ajax-push是什麼嗎?從我所瞭解的情況來看,它包括長時間打開HTTP連接並根據需要重新連接。它似乎很多用在聊天系統中。什麼是ajax-push?有沒有注意到在某些服務器上使用它?
我也聽說過在Java中使用ajax-push時,使用NIO-connetors或grizzle serlvet api是非常重要的嗎?再次,我只是在研究它究竟是什麼。
有人可以解釋一下ajax-push是什麼嗎?從我所瞭解的情況來看,它包括長時間打開HTTP連接並根據需要重新連接。它似乎很多用在聊天系統中。什麼是ajax-push?有沒有注意到在某些服務器上使用它?
我也聽說過在Java中使用ajax-push時,使用NIO-connetors或grizzle serlvet api是非常重要的嗎?再次,我只是在研究它究竟是什麼。
在正常AJAX(稱之爲拉)你問的東西的服務器,你就能立即得到它。這很好,當你想從服務器現在得到一些數據。但是如果服務器發生什麼事情,服務器想要將事件推送給客戶端?
從技術上講,這是通過使用所謂的長輪詢來實現的 - 瀏覽器打開HTTP連接並等待響應。只要服務器端沒有什麼有趣的東西,它就會等待。但是當事情發生時,服務器發送響應,客戶端立即收到。與每隔幾秒鐘詢問服務器的正常輪詢相比,這是一個巨大的優勢 - 它會產生大量流量,並且仍會引入明顯的延遲。
這種方法唯一的問題是暫掛HTTP連接的數量。由於單線程每個連接的限制,老派的Java servlet容器不能很好地處理這種連接數量 - 它們很快就會耗盡內存。儘管HTTP線程沒有做任何事情(等待系統的其他部分喚醒它們並給予響應),但它們佔用了內存。
但是也有很多的解決方案如今:
Tomcat的NIO connectors
Atmosphere阿賈克斯推/彗星庫
的Servlet 3.0 @Async
(大多數便攜式)
集裝箱特定的功能,但Servlet 3。 0,如果可用,應被視爲優越。
_另請參見[Push Technology](http://en.wikipedia.org/wiki/Push_technology)._ [和Google] –