2011-08-20 36 views
1

解釋如何使用websockets的典型示例可以在這裏找到:https://developer.mozilla.org/en/WebSockets/Writing_WebSocket_client_applicationsWebsockets:命名服務器的含義?

在這個頁面:

這個簡單的例子創建了一個新的WebSocket,連接到服務器 在http://www.example.com/socketserver。它指定了一個協議 「my-custom-protocol」。

var mySocket = new WebSocket(「http://www.example.com/socketserver」, 「my-custom-protocol」);

我的問題與本例的websocket服務器地址中的「socketserver」有關。套接字服務器將在端口上進行偵聽,對吧?所以,我能理解是這樣的:

var mySocket = new WebSocket("http://www.example.com:4242", "my-custom-protocol"); 

這就好比讓一個套接字服務器的連接,就像myGuy.connect(4242);的任何舊的方式。

當沒有給出端口號時,瀏覽器使用什麼類型的連接來初始訪問「socketserver」? URLConnection的?什麼?

回答

1

Websocket協議的開始就像HTTP一樣。如果未在URL中指定端口,則使用默認端口80。使用TCP/IP建立連接。客戶端發送的初始字節將包含路徑/socketserver,這就是主機知道客戶端請求的方式。

維基百科擁有的WebSocket客戶端,您應該看一個網頁套接字服務器之間的開口連通的例子: http://en.wikipedia.org/wiki/WebSocket#WebSocket_Protocol_Handshake

+0

我之前看過這些信息,但我想不知道「GET/demo HTTP/1.1」閃過我的眼睛......也許我正在看另一部分。這是一個GET請求,對嗎?那麼,他們給出的例子可以通過Servlet上的doGet()來處理? –

+0

它看起來像一個GET請求,這是我能說的最多的。另外我不知道什麼是servlet。 –

+0

時間已過。我現在比以前更瞭解它。只是以爲我會回來....是的...它作爲一個http請求。該請求是升級到websocket。我現在可以添加HttpExchange然後將失敗,因爲它在響應後關閉連接(承諾它將升級連接)。 –

1

WebSockets通過HTTP升級請求建立連接。因此,在上述情況下,Web服務器會將升級請求重新路由到/socketserver到實際的Web服務器,然後通過WS協議處理連接。

+0

是參考到/ SocketServer的類似於AJAX請求的URL引用?例如, url =「validate2」; req.onreadystatechange = callback; req.open(「POST」,url,true); –