2011-08-20 64 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); –