为什么我的 Socket.io Express应用程序只是发送到"发件人"客户端?



我正在尝试用Node.js(Express)和Socket.io编写一个基本的聊天应用程序。一切似乎都在工作,但我的套接字服务器似乎只是将消息"发送"回原始发件人。这是我的插座代码:

var client = io.listen(app);
client.sockets.on('connection', function (socket) {
  socket.on('message', function (data) {
    console.log(data);
    socket.send(data);
  });
});

这是我的客户端代码:

$(document).ready(function() {
    var socket = new io.connect('http://localhost:3000');
    socket.on('connect', function() {
        socket.send('A client connected.');
    });
    socket.on('message', function(message) {
        $('#messages').html('<p>' + message + '</p>' +  $('#messages').html());
        console.log(socket);
    });
    $('input').keydown(function(event) {
        if(event.keyCode === 13) {   
            socket.send($('input').val());
            $('input').val('');
        }
    });
});

感谢您的帮助。

使用client.sockets.emit而不是socket.emit。它将发射到每个连接的客户端(广播),使用套接字对象只发送到特定的客户端。

服务器端,我想你想要:

socket.broadcast.emit(data);

而不是:

socket.send(data);

请参阅"如何使用"页面底部的"广播消息"。:)

相关内容

  • 没有找到相关文章

最新更新