Socket.io и современные браузеры не работают

У меня странные проблемы с socket.io и современными браузерами. Удивительно, но с IE9 работает нормально, потому что откат к flashsocket работает лучше.

На моем сервере (с экспрессом)

var io = socketio.listen(server.listen(8080));
io.configure('production', function(){
    console.log("Server in production mode");
    io.enable('browser client minification');  // send minified client
    io.enable('browser client etag');          // apply etag caching logic based on version number
    io.enable('browser client gzip');          // gzip the file
    io.set('log level', 1);                    // reduce logging
    io.set('transports', [                     // enable all transports (optional if you want flashsocket)
        'websocket'
       , 'flashsocket'
       , 'htmlfile'
       , 'xhr-polling'
       , 'jsonp-polling'
    ]);
});

В браузере я вижу на вкладке «Сеть» (в Chrome ), что веб-сокет установлен и входит 101 Switching Protocolsв режим ожидания. После этого появляется xhr -polling и jsonp -polling (что случилось с flashsocket ?)

Хуже всего то, что информация не ходит туда-сюда. У меня это на связи:

io.sockets.on('connection', function (socket) {
    // If someone new comes, it will notified of the current status of the application
    console.log('Someone connected');
    app.sendCurrentStatus(socket.id);
    io.sockets.emit('currentStatus', {'connected': true);
});

И на клиенте:

socket.on('currentStatus', function (data){ console.log(data) });

Однако я могу видеть этот журнал только тогда, когда я выключаю сервер , который запускается с:

NODE_ENV=production node server.js

Что я делаю не так?

6
задан Antonio Laguna 25 July 2012 в 12:45
поделиться