Socket.io与每个用户分开工作

时间:2014-09-20 13:39:15

标签: javascript node.js express websocket socket.io

给予简单的基于socket.io的网络聊天。 Node.js代码:

io.on('connection', function(socket) {

    // Works well for all users
    socket.emit('send:message', {
        text: 'hello world'
    });

    // Logs text for all users
    console.log('Socket: User connected');

    // Message receive only user that send it
    socket.on('send:message', function (data) {
        socket.emit('send:message', {
            text: data.message
        });
    });

});

用户连接后,客户端代码成功接收hello消息(并呈现它)。但是当特定用户向服务器发送消息时,他是唯一收到此消息的人。如何为每个用户广播每条消息?

1 个答案:

答案 0 :(得分:1)

您需要使用:

socket.broadcast.emit('send:message', {
   text: data.message
});

这样所有用户(发件人除外)都会收到此邮件。 如果您想要向所有人(包括发件人)广播,那么您必须使用:

io.sockets.emit('send:message', {
       text: data.message
});

您可以在http://socket.io/docs/#broadcasting-messages

找到更多信息