I found a problem.
On the server, I changed:
var io = require('socket.io').listen(8080);
to
var io = require('socket.io', { rememberTransport: false, transports: ['WebSocket', 'Flash Socket', 'AJAX long-polling'] }).listen(8080);
which forces the server to use either WebSockets, Flash Sockets, or long polling. He will try to use them in that order. The rememberTransport function makes the server and client forget which connection they last used and try to connect to the "transport" above.
On the client side, I just did the same. I added:
{ rememberTransport: false, transports: ['WebSocket', 'Flash Socket', 'AJAX long-polling']}
to the socket constructor. It looked like this:
var socket = io.connect('http://localhost:843', { rememberTransport: false, transports: ['WebSocket', 'Flash Socket', 'AJAX long-polling']});
Now it works fine.
Thanks guys.
source share