SocketIO 内部是如何工作的?
How SocketIO works internally?
我对 SocketIO 的工作原理有疑问。
如果我向“room1”发出一个套接字:
socketio.sockets.to(room1).emit('chat.message',data);
并且这个room1在里面注册了10000个session...
这段代码重复10000次是一样的吗?:
socketio.sockets.to(sessionId).emit('chat.message',data);
也许效率最差?
发送到一个房间,内部socketIO正在发送消息到
在房间里注册的所有会话?或者 SocketIO 是如何工作的?
这个问题是因为我有一个房间,我只需要向这个房间的一部分发送消息,而且我还有带有 userIds 的微型房间,创建另一个迭代房间的房间可能更复杂socket.emit
并发送到我需要发出此消息的所有微型房间。
每当任何客户端连接到服务器时,它都会自动加入到带有 roomId(一些随机字符串)的房间。当你明确加入另一个房间时,socket 将连接到带有 roomId 的两个房间(无论你指定什么)。
socketio.sockets.to(sessionId).emit('chat.message', data);
socketio.sockets.to(room1).emit('chat.message', data);
两个语句做同样的事情。所以 emit 将向房间广播消息。房间 (sessionId) 只有一个用户,房间 (room1) 可以有多个用户连接。
它在内部调用 socket.io-adpater 的广播方法。
https://github.com/socketio/socket.io-adapter/blob/master/index.js
行:111
它正在迭代每个连接的客户端并发送数据。
我对 SocketIO 的工作原理有疑问。
如果我向“room1”发出一个套接字:
socketio.sockets.to(room1).emit('chat.message',data);
并且这个room1在里面注册了10000个session...
这段代码重复10000次是一样的吗?:
socketio.sockets.to(sessionId).emit('chat.message',data);
也许效率最差?
发送到一个房间,内部socketIO正在发送消息到 在房间里注册的所有会话?或者 SocketIO 是如何工作的?
这个问题是因为我有一个房间,我只需要向这个房间的一部分发送消息,而且我还有带有 userIds 的微型房间,创建另一个迭代房间的房间可能更复杂socket.emit
并发送到我需要发出此消息的所有微型房间。
每当任何客户端连接到服务器时,它都会自动加入到带有 roomId(一些随机字符串)的房间。当你明确加入另一个房间时,socket 将连接到带有 roomId 的两个房间(无论你指定什么)。
socketio.sockets.to(sessionId).emit('chat.message', data);
socketio.sockets.to(room1).emit('chat.message', data);
两个语句做同样的事情。所以 emit 将向房间广播消息。房间 (sessionId) 只有一个用户,房间 (room1) 可以有多个用户连接。
它在内部调用 socket.io-adpater 的广播方法。
https://github.com/socketio/socket.io-adapter/blob/master/index.js 行:111
它正在迭代每个连接的客户端并发送数据。