一个解释如何使用websockets的典型例子可以在这里找到:https://developer.mozilla.org/en/WebSockets/Writing_WebSocket_client_applications.
From the page:
这个简单的例子创建一个新的WebSocket,连接到服务器在http://www.example.com/socketserver上。它指定了一个协议"my-custom-protocol"。
var mySocket = new WebSocket("http://www.example.com/socketserver","my-custom-protocol");
我的问题与"socketserver"在这个websocket服务器地址的例子有关。套接字服务器将监听端口,对吧?所以,我可以这样理解:
var mySocket = new WebSocket("http://www.example.com:4242", "my-custom-protocol");
这就像任何连接到套接字服务器的旧方法,如myGuy.connect(4242);
。
当没有给出端口号时,浏览器使用什么类型的连接来初始访问上面的"socketserver"?URLConnection吗?怎么啦?
Websocket协议的开头类似于HTTP。如果URL中没有指定端口号,则使用默认的80。使用TCP/IP建立连接。客户端发送的初始字节将包含路径/socketserver
,因此主机就是这样知道客户端请求的是什么。
维基百科有一个websocket客户端和websocket服务器之间开放通信的例子,你应该看看:http://en.wikipedia.org/wiki/WebSocket WebSocket_Protocol_Handshake
WebSockets通过HTTP升级请求建立连接。因此,在上述情况下,Web服务器将把/socketserver
上的升级请求重新路由到实际的Web套接字服务器,然后通过WS协议处理连接。