我編碼在Java的WebSocket服務器。當我使用的WebSocket連接到Firefox中的服務器,我發現兩個連接建立,其中一個從來不發送任何數據...
我的Firefox版本是15.0.1
Chrome瀏覽器中相同的代碼運行正常,連接一次,只建立一個連接。
有沒有人有這樣的麻煩?的WebSocket在Firefox中建立兩個連接
有服務器的代碼:
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();
}
}
而且有JS代碼:
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代碼在Firefox中,我得到這個在我的服務器控制檯:
accept socket:socket [addr =/127.0.0.1,port = 56935,localport = 11111]
accept socket:Socket [a DDR =/127.0.0.1,端口= 56936,將localPort = 11111]
我在C++中的WebSocket服務器,我沒有看到它正從Firefox的兩個連接。你正在使用哪個版本? – Wutz
我的firefox版本是15.0.1 – takamachi
我在C中製作了一個簡單的服務器,並在接受連接器時打印一行。控制檯中還印有兩行。 – takamachi