套接字.IO不能在多个客户端上工作
socket.io not working on several clients
我试图建立一个简单的聊天客户端,我有一些问题,让它跨多个客户端工作。很可能我错过了一些非常简单的东西。当我从一个客户端发送一些东西时,它会登录到该客户端,而不会登录到其他任何客户端。
服务器:
var io = require('socket.io').listen(5000);
io.sockets.on('connection', function (socket) {
socket.on('send', function (data) {
socket.emit('receive', data);
});
});
:
var socket = io.connect('http://localhost:5000');
socket.on('receive', function(data){
console.log("Data received at " + new Date() + ": " + data);
});
传递给回调函数的socket
变量是连接的客户端的句柄,因此socket.emit
行为正确,即它应该只发送给发起它的客户端。
试题:
socket.broadcast.emit('receive', data);
发送给所有人,除了原始客户端,或者
io.sockets.emit('receive', data);
发送到所有客户端,包括发送方
您希望在所有套接字上发出,而不仅仅是发送消息的套接字。所以你应该使用:
io.sockets.emit('recieve', data);
这是假设您在将数据发送到服务器之前没有在发送客户机上记录数据。在这种情况下,您需要使用:
socket.broadcast.emit('recieve', data);
将消息发送到所有连接的客户端,除了发送方。
查看Socket.io的参考
编辑:特雷弗先我一步。然而,为了一些额外的澄清:io.sockets
是相同的io.of('')
。当您开始在scoket中使用名称空间时,了解这一点非常方便。io程序。
相关文章:
- Imgur 通过客户端 javascript 上传工作,但不是 node.js.慌乱了
- ASPxClientGridView之后激发的客户端事件.ApplyFilter执行其工作
- Backbone.js应用程序使用CommonJS结构与node.js和客户端协同工作
- socket.io-发送到socketid(单个客户端)不工作
- SignalR使集线器外的客户端无法工作
- Java 脚本 Web 套接字客户端无法正常工作
- Rx如何在Web(客户端)上真正工作
- JavaScript 的客户端缓存是如何工作的
- Asp.net.服务器端验证和客户端验证很好地协同工作的最佳方式是什么?
- 我的节点.js https 客户端始终工作,无论证书有效性如何
- struts2 jquery ajax 和客户端验证不工作
- 可以't使nntp客户端(nodejs)正常工作
- 自定义验证摘要HTML帮助程序没有'不在客户端工作
- 让Pusher JS客户端在PhantomJS中工作
- XML读取代码在我的服务器上工作,但在我的客户端服务器上不工作
- Valence javascript客户端库在本地主机上工作吗
- TLS WebSocket服务器与firefox客户端一起工作,但不与chrome客户端一起工作
- react dom/server是否在客户端工作
- 将一些在客户端工作的javascript转换为服务器端nodejs
- Post Ajax调用json返回400,而其余客户端工作正常