項目需求
- 單頁面,進入即登錄,系統隨機分配連接用戶名
- 存儲聊天信息消息
- 聊天羣發功能
項目架構
功能實現思路
對於Netty的集成是相對簡易,配置對應的Handler,在SpringBoot啓動的時候,注入並啓動對應的Netty監聽。
- 對於前端頁面而言,是單頁面,進入後它會自動與寫死的WebSocket連接通信,Netty會自動監聽新連接的接入,當新連接建立,我們通過工具類隨機生成一個名稱,並以鍵值對進行存儲。
- 而對於消息的監聽,則直接進行了子連接與其他連接的處理,在獲取到消息的時候,服務器再向所有的客戶端頁面重新羣發,且在羣發的時候進行判斷,如果是原本發送的連接則一個格式,其他接受的則另一個格式,這裏方便前端進行樣式處理。
- 同時在進行消息監聽的時候,所有接受到的消息,服務器都會做本地臨時存儲處理,以鍵值對的形式存儲用戶的聊天消息。
- 在連接斷開、用戶離線後,調用異步方法,將臨時存儲庫中的聊天消息存儲到數據庫中
效果展示
GitHub地址
項目名:InChat
項目地址:https://github.com/UncleCatMy...
項目介紹:基於Netty4與SpringBoot,聊天室WebSocket(文字圖片)加API調用Netty長鏈接執行發送消息(在線數、用戶列表)、Iot物聯網-MQTT協議、TCP/IP協議單片機通信,異步存儲聊天數據
如果本文對你有所幫助,歡迎關注個人技術公衆號