Saltar al contenido

Crear un chat privado entre un key usando un node.js y socket.io

Recuerda que en las ciencias informáticas cualquier problema casi siempre tiene diferentes soluciones, por lo tanto aquí mostraremos lo más óptimo y eficiente.

Solución:

Tienes que crear una habitación con conversation_id y haga que los usuarios se suscriban a esa sala, para que pueda enviar un mensaje privado a esa sala,

cliente

var socket = io.connect('http://ip:port');

socket.emit('subscribe', conversation_id);

socket.emit('send message', 
    room: conversation_id,
    message: "Some message"
);

socket.on('conversation private post', function(data) 
    //display data.message
);

Servidor

socket.on('subscribe', function(room) 
    console.log('joining room', room);
    socket.join(room);
);

socket.on('send message', function(data) 
    console.log('sending room post', data.room);
    socket.broadcast.to(data.room).emit('conversation private post', 
        message: data.message
    );
);

Aquí están los documentos y el ejemplo para crear una sala, suscribirse a la sala y Emitir mensaje a una sala:

  1. Salas de Socket.io
  2. Socket.IO suscribirse a múltiples canales
  3. Diferencia de salas de socket.io entre broadcast.to y sockets.in

SEGURO: Simplemente,

Esto es lo que necesitas :

 io.to(socket.id).emit("event", data);

cada vez que un usuario se une al servidor, se generarán los detalles del socket, incluida la identificación. Esta es la identificación que realmente ayuda a enviar un mensaje a personas específicas.

primero necesitamos almacenar todos los socket.ids en array,

   var people=;

   people[name] =  socket.id;

aquí nombre es el nombre del receptor. Ejemplo:

  people["ccccc"]=2387423cjhgfwerwer23;

Entonces, ahora podemos obtener ese socket.id con el nombre del receptor cada vez que enviamos un mensaje:

para esto necesitamos saber el nombre del destinatario. Debe emitir el nombre del destinatario al servidor.

lo ultimo es:

  socket.on('chat message', function(data)
 io.to(people[data.reciever]).emit('chat message', data.msg);
 );

¡Espero que esto funcione bien para ti! Buena suerte

Si te animas, puedes dejar un ensayo acerca de qué le añadirías a este escrito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *