Creo que esto resolverá su problema. Mi truco aquí es guardar el tipo de transporte en el objeto HTTP Request una vez que el cliente se conecta. Luego puede recuperarlo en su devolución de llamada más tarde. En primer lugar nos ajustamos a la clase Listener:
var io = require('socket.io'),
io.Listener.prototype._onConnectionOld = io.Listener.prototype._onConnection;
io.Listener.prototype._onConnection = function(transport, req, res, up, head){
req.socketIOTransport = transport; // Take note of the transport type
this._onConnectionOld.call(this, transport, req, res, up, head);
};
Y luego más adelante en el cuerpo de su aplicación:
var socket = io.listen(app),
socket.on('connection', function(client){
console.log(client.request.socketIOTransport); // Lets check that transport
// ...
});
Espero que esto ayude!
No hay una manera fácil de obtener esta información. La fuente no lo hace fácilmente accesible. – Raynos