2016-04-29 47 views
0

我有一臺服務器和許多客戶端。第一次連接到服務器時,每個客戶端都會註冊到服務器。在即時服務器維護一個用戶名和他們的IP地址以及他們的在線用戶(客戶端)的公共端口的列表。如何在其他用戶離線時在對等消息傳遞中發送消息?

用戶X可以向服務器請求該列表並且可以使用ip和端口直接與另一個用戶Y聯繫到對應的Y並開始消息傳遞。用戶X保持用戶Y的用戶名在其聯繫人中。

用戶X再次想要聯繫列表中的用戶Y,但發現用戶Y現在處於脫機狀態(在線用戶列表中不包含X的名稱),現在用戶X如何與用戶Y聯繫?

+0

沒有進入編程,但我會以同樣的方式對電話通信進行排序。用戶呼叫不回答?他得到了「誰打電話給你」。 – sysfiend

回答

0

我會臨時存儲X在服務器中發送給Y的消息,並且一旦用戶Y重新聯機,服務器將自己推送消息給Y(讓Y知道某種方式,消息來自X )

+0

如果用戶Y突然離開聊天並關閉應用程序,該怎麼辦? – abc

+0

你是說Y突然關閉了?你應該創建一個關閉例程,它會向服務器發送一個關閉的通知,以便服務器可以相應地更新它的表。另外,你使用的是TCP還是UDP?如果使用TCP,您可以知道數據包永遠不會到達Y,然後將數據包重新發送到服務器(甚至可能通知服務器X沒有響應) –