node.js - rooms - socket.io chat con habitaciones privadas
socket.io express (2)
Empecé a buscar en node y socket.io.
Ya he creado una aplicación de chat simple y estoy sorprendido de lo fácil que fue.
Ahora, me gustaría ir un poco más lejos y proporcionar una lista de usuarios en línea que tienen la capacidad de chatear entre sí en privado.
¿Cuál sería la mejor manera de abordar esto?
Leí en la nueva función de habitación de 0.7. ¿Sería eso un camino por recorrer? ¿Cree dinámicamente una nueva sala cada vez que dos usuarios necesiten chatear en privado? ¿Pero cómo se notificará al segundo usuario de la nueva sala creada, para que pueda conectarse allí?
¿Es mejor manejar toda la lógica anterior por mi cuenta? Almacene las habitaciones y los usuarios del lado del servidor y repáselos cada vez y envíe mensajes a los apropiados.
Gracias
Hej Thomas
si solo hay 2 usuarios hablando, no es necesario utilizar la función de publicación, solo envíe el mensaje del cliente al servidor y permita que el servidor localice al otro cliente y lo envíe.
Si la única funcionalidad que desea es que dos personas puedan enviarse mensajes entre sí (y no grupos de personas para tener una habitación), entonces la lógica podría ser algo como esto:
- Cuando un usuario se conecta, almacena su conexión en un objeto marcado por su nombre de usuario (o en cualquier otra estructura de datos que garantice que pueda encontrar la conexión de un usuario específico).
- Cuando un Bob quiere hablar con Jeff, envía al servidor un evento que indique tal.
- El servidor busca la conexión Socket.IO de Jeff en el objeto del paso 1.
- El servidor usa esta conexión para enviar a Jeff (y solo a Jeff) el mensaje privado.