目前公司業務上,有課程直播這一塊。為了增加用戶的互動,需要增加聊天室功能。聊天室,對實時性有較嚴格的要求,所以考慮使用socketio來做。目前在服務端,有基于netty實現的websocketio的框架。https://github.com/mrniko/netty-socketio,這個作者還是挺厲害的(redisson的作者)。
一般的聊天室架構圖是這樣的:

服務端準備:
1 聊天室的創建,銷毀
當老師有直播請求的時候,同時,需要通知后臺服務創建一個聊天室的監聽廣播。

當直播結束,通知后臺關閉聊天室

2 用戶信息發送的廣播
監聽用戶發送message的事件,廣播消息。

客戶端準備:
1 socketio請求發送事件包socket.io.js
2DEMO頁面準備
1 初始化聊天室

2監聽創建事件

3 發送創建事件

4 創建一個名稱為chat2的聊天室

5 初始化創建好的聊天室

6 監聽聊天事件

7 發送聊天信息事件

8開始聊天

這樣,一個簡陋的聊天室就成形了,接下來還要考慮聊天消息的分布式存儲。好消息是,他已經提供了相應的接口集成,支持redisson,hazelcast.
我的微信公眾號,歡迎溝通學習。
