Socket.id tự động thay đổi sau 30s



  • Chào các bác, e mới nghiên cứu nodejs với socket.io, e tạo 1 ví dụ về rooms, khi 1 user connect vào server e lưu lại socket.Id nhưng sau 30s thì server lại gọi hàm io. On('connection') và socket.Id bị thay đổi và e ko gửi được message cho user e đã lưu socket.Id trước đó, có cách nào khắc phục không ạ, e cảm ơn các bác.



  • Hi Em,
    vấn đề ở đây không phải lỗi của nodejs, em có thể sửa bằng cách kéo dài thời gian time-out
    nhưng đó không phải bản chất của vấn đề.
    Vấn đề nằm ở chỗ, là em quản trị client như thế nào, bằng cách mỗi lần client gọi connect, thì em hãy dùng ID cho chính em sinh ra, lúc đó, id của nodejs không còn ý nghĩa và em ko cần quan tâm tới id của socketio nữa.



  • @Hung-Nguyen-Van Bạn xem lại code nhé nó có vấn đề á.

    1. Connection lại khi bị disconnect. -> Change ID. Lúc này xử lí logic trên backend luôn. Thật ra thì cho join room luôn.

    2. Để keep connect thì có 1 ping request gửi lên theo config. Để keep. Lúc đó thì cũng k change socketid.

    3. Mình đoán là bạn import cái file socket.io realtime bạn viết ở nhiều nơi hoặc bạn có 1 cái hàm nào đó làm việc này run lại. Thì nếu k vấn đề bạn show code cho mọi người hỗ trợ nhé.

    Sent from Rodgers Zone!!!

    0

Log in to reply