发送消息给所有用户+你自己(Socket.io)

时间:2014-04-02 14:48:15

标签: node.js express socket.io

客户端javascript文件:

socket.on('message', function(msg) {
    $(".chat-body").append(msg);
});

$("form").submit(function(e) {
    e.preventDefault();
    var msg = $("input[type=text]").val();
    socket.send(msg);
});

服务器端app.js:

io.sockets.on('connection', function(socket) {
    socket.on('message', function(data) {
      socket.broadcast.send(data);
    });
    socket.on('disconnect', function() {
      // handle disconnect
    });
});

如何在没有额外的情况下向自己发送消息"追加"?

提前致谢。

2 个答案:

答案 0 :(得分:1)

socket是启动事件connection的当前套接字,现在要向所有用户发送+自己使用:

io.sockets.emit('message', msg);

如果您要发送到除自己以外的所有套接字,请使用broadcast.emit("event", value)

socket.broadcast.emit('event', msg)

如果您只是想回答自己(发起事件的套接字):

socket.emit('msg_socket', msg);

答案 1 :(得分:0)

嗯,根据documentation,它是:

// sending to all clients, include sender
io.sockets.emit('message', data);

也可以这样做:

io.sockets.send(data);

但它会做同样的事情,所以我会采用记录的方式。