为什么我的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(''); } }); }); 

帮助表示赞赏。

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

服务器端,我想你想要:

 socket.broadcast.emit(data); 

代替:

 socket.send(data); 

请参阅“ 如何使用”页面底部的“广播信息”。 🙂