Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

    Refresh trang hoặc sang trang khác vẫn chat được với socket.id đó

    Hỏi Đáp
    0
    6
    1572
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      thanhansoft last edited by

      Hi các bạn,

      Mình đang làm ứng dụng chat user to user với nodejs socket.io. Làm sao để khi refresh trang hoặc sang trang khác vẫn chat được với socket.id đó vậy bạn?

      Vì mỗi lần chuyển trang là socket.id lại đổi. Giúp mình và sẽ hậu tạ

      Vũ 1 Reply Last reply Reply Quote 0
      • Vũ
        Vũ Global Moderator @thanhansoft last edited by

        @thanhansoft bạn dùng định danh username thay vì id như hiện tại thì hợp lý hơn!

        Tech-nông
        Email: [email protected]
        Profile: about.me/vunb
        Github: github.com/vunb
        Twitter: twitter.com/nhubaovu

        1 Reply Last reply Reply Quote 0
        • Vy Nhật Hoàng
          Vy Nhật Hoàng last edited by

          Bạn cho router chat nằm template main như vậy sang page khác chỉ thay đỗi trong router template con ko thay đỗi cha ID sẽ vẫn vậy

          1 Reply Last reply Reply Quote 0
          • P
            Phuc Phan66 last edited by Phuc Phan66

            Socket được tạo khi bắt đầu hình thành kết nối và đóng khi kết nối kết thúc. Khi bạn reload có nghĩa socket cũ bị đóng và bạn đã tạo một kết nối khác có nghĩa là có một socket mới được tạo ra. Vì vậy bạn không nên dùng socket để xác định user. Nên dùng cookies, session.

            1 Reply Last reply Reply Quote 0
            • Acenter Ha
              Acenter Ha last edited by Acenter Ha

              Chỗ này có 2 điểm:

              1. Bạn đang route từ client hay express từ server (nếu bạn xài front end là angular chẵng hạn)
                -> nếu đc thì nên dùng ui-route để chuyển trang, ko mất kết nối, nhanh hơn ổn định hơn. (Vì ui-route của angular ko reload vật lý page)
                Nếu như phải route bằng express (sever) thì tham khảo cách 2.
              2. Tạo một array (map) lưu trữ id của user và socket id với key là id ủe trên server. Sử dụng id user làm định danh, mất kết nối thì thay socket id mới cho id cũ bằng id của user đó.
              1 Reply Last reply Reply Quote 0
              • Thuc Nguyen tan
                Thuc Nguyen tan last edited by Thuc Nguyen tan

                Theo mình thì phải dùng flow chart này :

                0_1514621668629_dang nhap chat.png

                hix, Khá phức tạp nhỉ!!!, Khá giống với flow chart login.

                Có 2 mấu chốt:

                1. Phía socket có thể kiểm tên có trùng lặp không. (Bởi vì lấy được list socket name)
                2. Phía session thì không thể khống chế tên có trùng lặp không. (Bởi vì không lấy được list session name ).

                any orther idea?

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post