Không có ai rảnh ngồi code hết giúp bạn đâu.
Bạn có thể Google keyworkd: pub/sub javascript library
1 trong số đó là: https://github.com/mroderick/PubSubJS
Design hệ thống thì có thể như sau:
- người dùng subscribe tới 1 specific channel, channel đó có thể đại diện cho group chat). Việc subscribe có thể thực hiện qua ajax request (tìm hiểu về websocket protocol, HTTP Upgrade header)
- khi đã subscribe thành công, nghĩa là bạn đã có bi-directional connection, nghĩa là bạn có thể nhận, gửi thông qua websocket protocol. lúc đó việc nhận thông tin người online, danh sách người trong group chỉ là chuyện về API.
PS: websocket là tương lai, nhưng hiện tại web polling vẫn còn đang được rất nhiều bên (giants) sử dụng.