我正在使用这个简单的代码
Client.html
Server.js
一切正常,直到我的客户端代码的最后一步
socket.on('add', function(data) {
socket.broadcast.emit('AAA');
});
似乎套接字添加永远不会出现,但在我的服务器上我有
socket.on('Text', function(data) {
socket.emit('add', data);
});
我测试了套接字文本是否会出现,但是我确实无法找到问题 感谢
答案 0 :(得分:1)
socket.broadcast.emit
向连接到服务器的所有套接字发送消息,但相关的socket
除外。所以最有可能add
来到服务器,但它会广播你的客户无法获得的AAA
。使用io.sockets.emit
发送到所有连接的套接字。改变这个
socket.broadcast.emit('AAA');
到
io.sockets.emit('AAA');
我也忽略了你从客户端而不是从服务器调用socket.broadcast.emit
。它会在浏览器控制台上显示错误,因为客户端上没有广播。
答案 1 :(得分:0)
目前,客户端的on('add')
代码位于on('connect')
不正确的事件中......
你需要把它带到那里,所以它变成了:
socket.on('connect', function () {
$('#button').click(function() {
var addtext = $('#text').val();
socket.emit('Text', addtext);
});
});
socket.on('add', function(data) {
socket.emit('AAA');
});
编辑:我刚刚注意到您的客户端代码中有socket.broadcast.emit()
。据我所知,没有客户广播的概念。如果要广播某些内容,则客户端应将其发送到服务器,然后服务器将广播到其他客户端。