? ? ? ? 目前公司業(yè)務(wù)上吐根,有課程直播這一塊。為了增加用戶的互動辐马,需要增加聊天室功能拷橘。聊天室,對實(shí)時性有較嚴(yán)格的要求喜爷,所以考慮使用socketio來做冗疮。目前在服務(wù)端,有基于netty實(shí)現(xiàn)的websocketio的框架檩帐。https://github.com/mrniko/netty-socketio术幔,這個作者還是挺厲害的(redisson的作者)。
? ? ? ?一般的聊天室架構(gòu)圖是這樣的:
服務(wù)端準(zhǔn)備:
1 聊天室的創(chuàng)建湃密,銷毀
當(dāng)老師有直播請求的時候诅挑,同時,需要通知后臺服務(wù)創(chuàng)建一個聊天室的監(jiān)聽廣播泛源。
當(dāng)直播結(jié)束拔妥,通知后臺關(guān)閉聊天室
2 用戶信息發(fā)送的廣播
監(jiān)聽用戶發(fā)送message的事件,廣播消息达箍。
客戶端準(zhǔn)備:
1 socketio請求發(fā)送事件包socket.io.js
2DEMO頁面準(zhǔn)備
1 初始化聊天室
2監(jiān)聽創(chuàng)建事件
3 發(fā)送創(chuàng)建事件
4 創(chuàng)建一個名稱為chat2的聊天室
5 初始化創(chuàng)建好的聊天室
6 監(jiān)聽聊天事件
7 發(fā)送聊天信息事件
8開始聊天
這樣没龙,一個簡陋的聊天室就成形了,接下來還要考慮聊天消息的分布式存儲缎玫。好消息是硬纤,他已經(jīng)提供了相應(yīng)的接口集成,支持redisson,hazelcast.