基于netty實現(xiàn)socketio的聊天室

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

? ? ? ?一般的聊天室架構(gòu)圖是這樣的:


服務(wù)端準備:

1 聊天室的創(chuàng)建,銷毀

當老師有直播請求的時候,同時,需要通知后臺服務(wù)創(chuàng)建一個聊天室的監(jiān)聽廣播。


當直播結(jié)束,通知后臺關(guān)閉聊天室


2 用戶信息發(fā)送的廣播

監(jiān)聽用戶發(fā)送message的事件,廣播消息。


客戶端準備:

1 socketio請求發(fā)送事件包socket.io.js

2DEMO頁面準備

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.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,460評論 25 708
  • 作者:詹聰聰 序言: 本人工作中需要用到flask-socketio,在學習英文文檔時發(fā)現(xiàn),flask-socke...
    Python中文社區(qū)閱讀 12,746評論 6 39
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 13,945評論 0 15
  • 我在這里 我在這里 在即將消失的地平線附近 在低空滑過的飛鳥附近 在蒼白如你的雛菊盛開之地 我知道的 你知道的 來...
    百鬼夜行er閱讀 178評論 0 1
  • 我之初讀感: 讀顏氏祭侄文稿:1、整篇粗細、濃淡,文中的空白隨性卻不亂,恰到好處的使人覺得文意悲憤哀傷,但不至于悶...
    常妙閱讀 356評論 0 1