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