socketio 发emit消息。向单个socket client发送 结果所有client都收到消息。
发布于 9 年前 作者 wdragon1983 5594 次浏览 最后一次编辑是 8 年前 来自 问答

服务端 var clients = {}; 每次 有新客户端过来 。把socket保存在clients var currClient = { id: 0, socket: 0, }; currClient.id = id; currClient.socket = socket; socket.id =id; clients[currClient.id] = currClient;

	然后接收到请求的时候。
	 var client = clients[id];
	  client.socket.emit('dosomething', {message:data});
	  但是这个socket发送的emit消息。为什么所有的客户端都收到了?
3 回复

以上的原因是,同一个进程 启动多个线程 连接服务器, 所得到的连接是同一个连接。

但是开启多个进程 连接服务器 得到的是不同的连接。

我用的是java的 socketio client

不知道什么原因?

var socket = require(‘socket.io-client’).connect(‘http://10.21.177.79:4001’, {“multiplex”: false, “forceNew”: true}); 默认在单个进程中创建的socket是相同的。可以通过这种方式,在单个进程中创建出多个socket;

ok thanks

回到顶部