socket.io chat with private rooms

徘徊边缘 提交于 2019-12-04 07:35:16

问题


I started looking into node and socket.io.

I already have created a simple chat application and I am amazed at how easy it was.

Now, I would like to take a little bit further and provide a list of online users that have the ability to chat with each other in private.

What would be the best way to approach this?

I read on 0.7's new room feature. Would that be a way to go? Dynamically create a new room each time 2 users need to chat in private? But how the second user is going to be notified of the new room created, so that he can connect there?

Is it better to handle all the above logic myself? Store the rooms and users server side and loop through them each time and send messages to the appropriate ones?

Thanks


回答1:


If the only functionality you want is for two people to be able to send messages to one another (and not groups of people to have a room), then the logic could be something like this:

  1. When a user connects, store their connection in an object keyed by their username (or in any other data structure that ensures you can find a specific user's connection).
  2. When a Bob wants to talk to Jeff, send the server an event stating such.
  3. The server looks up Jeff's Socket.IO connection in the object from step 1.
  4. The server uses this connection to send Jeff (and only Jeff) the private message.



回答2:


Hej Thomas

if theres only 2 users talking you dont need use publish att all just send that message from the client to the server and let the server locate the other client and send it down.



来源:https://stackoverflow.com/questions/7444817/socket-io-chat-with-private-rooms

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!