1. 群聊訊息要儲存進資料庫,群訊息要有乙個有序id標識。 (離線使用者上線時,要拉取檢視)
2. 每個群成員都要在資料庫裡,記錄他最後收到的那個群訊息id。(在他上線時,根據這個id和最新id,決定要給他推送哪些訊息)
3. 使用者收到訊息後,要發個ack給服務端,服務端才跟新他的最後收到訊息id。(避免訊息丟包)
4. 發個ack給服務端,可以批量發。(避免ack風暴)
5. 優化後存在客戶端收到相同訊息的情況,可根據訊息id,在客戶端做排除。
6. 離線訊息可以分頁發,避免一次傳送過大資料。
詳解NIO如何實現群聊?
構建selector以及服務端監聽 通道啟動監聽並處理建立連線請求 處理讀資料 資料 實現客戶端測試 服務端的主要功能如下 1.開放監聽埠,方法chatserver構造方法 2.處理鏈結請求,方法listener實現連線的建立 3.讀取訊息內容,方法readdata 當chatserver物件被建立...
C Sockets程式設計實現群聊
伺服器 class server ipendpoint ipandpo new ipendpoint ipadd,port 獲得ip和埠號 socket.bind ipandpo 繫結ip和埠號並關聯 console.writeline 伺服器建立成功 socket.listen 0 建立監聽,0表...
Python群聊 UDP實現
方法 1.udp協議 2.多執行緒 服務端 import socket import threading 主線程實現管理員功能,分支執行緒實現新增使用者與資訊的 sock socket.socket socket.af inet,socket.sock dgram sock.bind 0.0.0.0...