我正在尝试使用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('');
}
});
});
非常感谢帮助。
答案 0 :(得分:2)
使用client.sockets.emit
代替socket.emit
。它会向每个连接的客户端(广播)发出,使用套接字对象只发送给特定的客户端。
答案 1 :(得分:0)
服务器端,我想你想要:
socket.broadcast.emit(data);
而不是:
socket.send(data);
参见&#34;广播消息&#34;在"How to use" page的底部。 :)