2012-07-06 72 views
1

我對彗星的理解是它的服務器端AJAX請求。我對Long Polling(「Push」)的理解是它也是服務器端的AJAX請求。我對WebSockets的理解是它們是一個雙向AJAX請求。WebSockets,Comet,AJAX&Long Polling

如果其中有任何錯誤,請首先糾正我!

假設我或多或少正確,這些都只是AJAX(JavaScript使用XmlHttpRequest對象下的引擎)?如果它們不僅僅是AJAX調用,那麼如何在客戶端(通過JavaScript)和服務器(使用類似Java的東西)中實現它們?提前致謝!

+0

不一定。你可以使用iframe。 – scottheckel 2012-07-06 22:07:57

+1

'WebSocket'是客戶端和服務器之間可靠的雙向連接,沒有任何請求(除了初始握手) - 您只需發送數據並直接獲取數據。這比需要爲每條消息發出新的請求要好得多。 – Esailija 2012-07-06 22:09:26

+0

關於你的問題的術語部分,你可以檢查出這個答案:http://stackoverflow.com/questions/10782058/periodic-pull-comet-long-polling-websockets/10785129#10785129 至於兩個Comet和WebSockets的各個方面,請看這篇文章的最後部分:http://cometdaily.com/2011/07/06/push-technology-comet-and-websockets-10-years-of-history-from -lightstreamers-perspective/ – 2012-07-07 17:26:23

回答

2

您對WebSockets的理解不正確。 WebSockets是一種新協議,它提供了一個與XmlHttpRequest無關的新API。

這是你如何創建的WebSocket

var exampleSocket = new WebSocket(
    "ws://www.example.com/socketserver", "protocolOne" 
); 

https://developer.mozilla.org/en/WebSockets/

+0

謝謝@Otto(+1) - 我正確地使用基於AJAX的Comet和Long Polling嗎? – IAmYourFaja 2012-07-06 22:15:31

+1

@AdamTannon閱讀[this](http://en.wikipedia.org/wiki/Comet_(programming)#Implementations) – Esailija 2012-07-06 22:17:18

+0

這個WebSocket將如何在服務器端處理?它只是一個服務器在該URL /端口上偵聽嗎?在Java中,我認爲這會通過'HttpServletRequest'來接入網絡,並且可以通過回覆'HttpServletResponse'來進行服務? – IAmYourFaja 2012-07-06 22:44:12