Làm app chat user-user socket.io và nodejs



  • Em có 1 vấn đề mà research với suy nghĩ cả tuần chưa thông.
    Em làm app chat android với socket.io, service bằng nodejs. Ví dụ như giờ trên app có cái list những người đang online, e bấm vào 1 người để chat với người đó thì phải join 2 socket vào cùng 1 room ở dưới server như code dưới đây :

    • On the client side

    socket.emit('chat-with-user-b', {userb : IdOfUserB});
    socket.on('chat-with-me', function(roomID){
    // open tchat etc..
    });

    • On the server side :

    io.on("connection", function(socket){
    socket.on('chat-with-user-b', function(IdOfUserB){
    var roomID = IdOfUserB + '_' + socket.id; // create a unique room id
    socket.join(roomID); // make user A join room
    io.sockets[IdOfUserB].join(roomID); // make user B join room
    io.sockets.in(roomID).emit('chat-with-me', roomID); // send join event to both.
    });
    });

    Em đang không hiểu làm thế nào để lấy socket.id của user B để join. mong mọi người giúp. cám ơn mọi người nhiều.



  • Bạn phải viết mã xác định thông tin của tin nhắn bất kỳ ( người gửi, gửi cho ai, phòng nào...). Một cái gì đó tương tự như xác định tài khoản hay phiên làm việc...kiểu tượng tự như vậy.



  • Muốn hiện một list người đang online, server phải trả về để client hiện ra. Khi trả về danh sách người đang online, server nên kèm theo id của từng user.

    Sau đó, khi userA click vào tên của userB trong list, thì userA đã biết id của userB rồi.


Log in to reply