Giver基于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消息(并呈现它)。但当特定用户向服务器发送消息时,他是唯一接收到该消息的人。如何为每个用户广播每条消息?
您需要使用:
socket.broadcast.emit('send:message', {
text: data.message
});
通过这种方式,所有用户(发件人除外)都将收到此邮件。如果你想向所有人(包括发送者)广播,那么你必须使用:
io.sockets.emit('send:message', {
text: data.message
});
您可以在http://socket.io/docs/#broadcasting-消息