我正在用Java编写一个WebSocket服务器。当我使用WebSocket在火狐浏览器上连接服务器时,我发现建立了两个连接,其中一个连接从未发送任何数据...
我的火狐浏览器版本是15.0.1
同样的代码在Chrome中运行正常,只连接一次,建立一个连接。
有人有这样的麻烦吗?
当我在火狐浏览器中运行此 JS 代码时,我的服务器控制台会显示以下内容:
接受套接字:Socket[addr=/127.0.0.1,port=56935,localport=11111] 接受套接字:Socket[addr=/127.0.0.1,port=56936,localport=11111]
我的火狐浏览器版本是15.0.1
同样的代码在Chrome中运行正常,只连接一次,建立一个连接。
有人有这样的麻烦吗?
以下是服务器的代码:
ServerSocket svrSock = new ServerSocket();
svrSock.bind(new InetSocketAddress("0.0.0.0", 11111));
while(true) {
try {
// accept connection
Socket clientSock = svrSock.accept();
// print the socket which connected to this server
System.out.println("accept socket: " + clientSock);
// run a thread for client
new ClientThread(clientSock).start();
} catch (Exception e) {
e.printStackTrace();
}
}
以下是JavaScript代码:
var url = 'ws://localhost:11111/test/';
var ws = new WebSocket(url);
ws.onopen = function(){
console.log('connected!');
ws.send(11111);
ws.close();
};
ws.onclose = function(){
console.log('closed!');
};
当我在火狐浏览器中运行此 JS 代码时,我的服务器控制台会显示以下内容:
接受套接字:Socket[addr=/127.0.0.1,port=56935,localport=11111] 接受套接字:Socket[addr=/127.0.0.1,port=56936,localport=11111]