socket i / o:我在php应用程序中使用nodejs。我有一系列连通房,比如 rooms = {room1,room2,room3} ,还有一系列相应的消息说 messages = {message1,message2,message3} 。
直到现在我发出如下信息:
io.sockets.in('room1').emit('message', 'message1');
这样可以正常运行,但我担心一旦房间数量增加,所有房间的循环都会导致性能下降以及大的延迟。
有没有什么方法可以直接将一组消息发送到如下所示的房间阵列?:
io.sockets.in(rooms).emit('message', messages);
最终应该将message1分别发送到room1 ....
谢谢。!
答案 0 :(得分:-1)
我不知道有这样做的内置方法。但是,我也认为你还没有必要。这就是为什么我认为你现在应该坚持使用循环。
您认为您建议的来电如何运作?在某些时候,某人的代码将不得不创建一个循环来触摸每个房间和每个消息。第三方库可能已经优化了它们的循环(或者它可能真的是错误和缓慢,只是取决于),但它仍然必须循环。
在很多情况下,最好让您的功能先运行,然后再回过头来评估和修复代码中的慢点。 Read here有关此主题的更多指导。请注意,我并不是建议你在不考虑前提的情况下盲目编码,只是为了不让小东西流汗。我特别感谢链接中的第二个答案表明对每个发展阶段的适当考虑。