Cách lấy danh sách username online trong ứng dụng chat



  • Như tiêu đề đã nói,em sẽ chỉ tóm tắt ngắn gọn như sau : Em tạo 1 app chat =socket.io,bây giờ muốn tạo danh sách các thành viên đang online nhưng ko biết phải làm như thế nào . Mong mọi người giúp đỡ !!!



  • Bạn nghiên cứu đến đâu rồi ? Bạn làm Socket.io thì đã xem thử source code demo chat của nó chưa ?



  • Ý tưởng cơ bản như thế này :
    Muốn có danh sách các thành viên thì bạn cần nhét nó vào 1 mảng . Vậy khi người dùng connect bạn nhét nó vào 1 mảng, khi họ disconnect remove người dùng đó đi khỏi mảng. Mở rộng ra thì bạn cần check đấy là 1 người dùng hay 2 người dùng khác nhau dựa vào session :(



  • khi 1 user đăng nhập thành công thì thì emit đăng nhập trên server nhận user đó up status thành online xong từ server emit xuống client thây đổi lại danh sách online thế thui :3



  • This post is deleted!


  • khi disconnect thì làm như thế nào để nhận biết user nào để xóa khỏi mảng ? Có phải là mình dùng cái id của client gì đó ko ạ ?



  • @achung0147 đã nói trong Cách lấy danh sách username online trong ứng dụng chat:

    khi disconnect thì làm như thế nào để nhận biết user nào để xóa khỏi mảng ? Có phải là mình dùng cái id của client gì đó ko ạ ?
    đúng rồi ở mức cơ bản thì ta sẽ quản lý theo các socket id



  • @achung0147 dùng mảng làm j



  • Em nghĩ là dùng mảng json để lưu id của socket và username để tiện cho việc xem và xóa hoặc sửa đổi



  • Bạn nên dùng một array để lưu lại socket của những ngừoi dùng đang connect vs server.

    1. Khi người dùng online sẽ send event 'online', data = user_id

    2. Server sẽ nhận event này, bạn save :
      newSocket.user_id = user_id;
      socketArray[user_id] = newSocket;

    3. Bạn setup newSocket.on('disconnect') để xoá socket khỏi array:
      socketArray[newSocket.user_id] = null;

    Như vậy trong socketArray sẽ lưu lại toàn bộ những người dùng đang online.

    Kyle
    General Director, Felizz Pte Ltd

    1

Log in to reply