我正在使用已知的socketId向一个特定的用户发送消息:
io.to(thisKnownSocketId).emit('eventName')
为简化下一个发射,我制作了变量:
const currentSocket = io.to(thisKnownSocketId)
任何方法都只能运行一次:
currentSocket.emit('event1')
currentSocket.emit('event2')
上面的代码将event1
发送到适当的thisKnownSocketId
,这很不错,但是event2
将发送给所有不好的人。我发现在第一次发出currentSocket
之前有.rooms = [thisKnownSocketId]
,而在刚发出之后没有。
现在,我遭到了黑客入侵:
const fixTargetRoom = (socket, taskName, taskArgs) => {
const oldRooms = socket.rooms
socket.emit(taskName, ...taskArgs)
if (oldRooms.length) socket.rooms = oldRooms
}
但是感觉不对。知道吗,为什么发射后房间正在打扫?