2014-11-04 1 views
0

Я хочу знать, какой клиент отправил событие, когда он прибыл на сервер. Например:Как получить идентификатор сокета из события в Socket.io?

var socket = require(socket.io')(port); 

socket.on("ask question", function(data){ 
    var socketid = // ? 

    //respond to sender 
    socket.sockets.connected[socketid].emit("Here's the answer"); 
}); 

Как получить идентификатор сокета отправителя события?

ответ

0

Ваша логика на стороне сервера немного выключена. Клиент подключается, и именно там открывается клиентский сокет, и именно там вы слушаете события от конкретного клиента. Как правило, это будет выглядеть следующим образом:

var io = require("socket.io")(port); 

io.on('connection', function (socket) { 
    socket.on('ask question', function (data) { 
     // the client socket that sent this message is in the 
     // socket variable here from the parent scope 
     socket.emit("Here's the answer"); 
    }); 
}); 

Это показано в Socket.io документации here.

+0

Мое замешательство было в том, что я называю «сокет», что заставило меня задуматься над этим примером, как отправить его всем. –

Смежные вопросы