Đang làm cái chat nhiều luồng như dạng chát room vậy á mọi người cho em cái hướng với :3



  • Giúp em cái mọi người , 1 luồng chát với nhau mới thấy được cái socket đó, ai biết hướng dẫn em với tks nhiều.



  • Bạn nói cụ thể hơn đi đi ? Mình chưa hiểu bạn nói j hết. Chat room hay user - user ?



  • có nhiều room á bạn



    • Khi user login ban set user_id vào socket đang kết nối
      CLIENT:
      socket.emit("authen", { user_id: 1234});
      SERVER
      io.on('connection', function(socket){
      socket.on('authen', function(user_id){
      socket.user_id = user_id;
      })
      });
    • Khi user vào room chat: set room cho socket (1 socket co the join nhieu rooom) đó và có thể lưu lại trong database user này đang vào những room nào.
      CLIENT:
      socket.emit("join_room", "room1");
      SERVER
      socket.on('join_room', function(room_name){
      socket.join(room_name);
      });
    • Khi user gửi tin nhắn cho 1 room thì ta chuyển tin nhắn này cho toàn bộ socket đã join vào room này
      CLIENT:
      socket.emit("send_message", { room_name: "room1", msg: ""Hello everyone""});
      SERVER
      socket.on('send_message', function(data){
      socket.broadcast.to(data.room_name).emit('new_message', data.msg);
      });
    • Khi user rời room thì set out room.
      socket.leave(room_name);
    • Khi socket bị disconnect thì toàn bộ room trước đó sẽ bị out hết nên bạn cần đọc database để set lại room nếu muốn.


  • @cong88 đã nói trong Đang làm cái chat nhiều luồng như dạng chát room vậy á mọi người cho em cái hướng với :3:

    socket.broadcast.to(data.room_name).emit('new_message', data.msg);
    chỗ này thì client nhận sao bạn socket.broadcast.to(data.room_name).emit('new_message', data.msg);



  • @cong88 Tks bạn nhé tui làm được rùi cảm ơn .



  • @cong88 bajn còn ol không cho tui face tui hỏi vấn đề này vowiss :3



  • @nhutuit vấn đề j nữa thế bạn :D



  • @nhutuit Bạn nên sử dụng Socket i/o 1 thế mạnh về streaming data của NodeJS cho phép các client tương tác theo thời gian thực với nhau qua server. Cụ thể với dự án chat sử dụng nodeJS, bạn có thể tham khảo ví dụ cụ thể tại video này https://www.youtube.com/watch?v=ws2X48zX3Dg



  • cảm ơn mọi người



  • @cong88 em giải quyết nó được rùi bác :D


Log in to reply