即時通訊實現過程
即時通訊怎麼實現的
該軟體採用P2P方式,各個客戶端之間直接發訊息進行會話聊天,伺服器在其中只扮演協調者的角色(混合型P2P)。
1.會話流程設計
當一個新使用者通過自己的客戶端登陸系統後,從伺服器獲取當前線上的使用者資訊列表,列表資訊包括了系統中每個使用者的地址。使用者就可以開始獨立工作,自主地向其他使用者傳送訊息,而不經過伺服器。每當有新使用者加入或線上使用者退出時,伺服器都會及時發訊息通知系統中的所有其他使用者,以便它們實時地更新使用者資訊列表。
按照上述思路,設計系統會話流程如下:
(1)使用者通過客戶端進入系統,向伺服器發出訊息,請求登陸。
(2)伺服器收到請求後,向客戶端返回應答訊息,表示同意接受該使用者加入,並順帶將自己服務執行緒所在的監聽埠號告訴使用者。
(3)客戶端按照伺服器應答中給出的埠號與伺服器建立穩定的連線。
(4)伺服器通過該連線將當前線上使用者的列表資訊傳給新加入的客戶端。
(5)客戶端獲得了線上使用者列表,就可以獨立自主地與線上的其他使用者通訊了。
(6)當用戶退出系統時要及時地通知伺服器。
2.使用者管理
系統中,無論是伺服器還是客戶端都儲存一份線上使用者列表,客戶端的使用者表在一開始登陸時從伺服器索取獲得。在程式執行的過程中,伺服器負責實時地將系統內使用者的變動情況及時地通知線上的每個成員使用者。
新