socketio 发emit消息。向单个socket client发送 结果所有client都收到消息。
 发布于 10 年前  作者 wdragon1983  5901 次预览  最后一次回复是 10 年前  来自 问答 

服务端 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 回复
wdragon1983

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

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

我用的是java的 socketio client

不知道什么原因?

haozxuan

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