有一個應用程序需要將消息發送給一羣客戶端。客戶端是用戶計算機上的應用程序,並且這些應用程序有時每次運行幾天。服務器要麼有新的指令,要麼沒有。有時兩條新指令有10分鐘,有時一小時,有時一天。消息的長度是固定的。使用套接字向客戶端發送定期消息的最佳方式
實現此目的的最佳方法是什麼?我應該讓客戶端每隔10秒輪詢一次服務器嗎?每次新客戶端連接時,我應該在服務器上創建一個新線程,並保持連接,直到有新的指令,然後將其發送給客戶端並讓客戶端創建新的連接?
或者我應該將消息推送給客戶端?我在想如何做到這一點,我想出了這個: 作爲服務器和客戶端的服務器服務器。當客戶握手時,它將地址提供給服務器。然後服務器開始充當客戶端(並且作爲服務器來顯然允許其他客戶端連接),並且保持與客戶端的連接。客戶端就像服務器一樣,等待消息。
最後一個看起來相當複雜。做這個的最好方式是什麼?來自服務器的新消息(「指令」)應該在服務器「擁有」至少15秒後到達客戶端。
順便說一下,服務器應用程序將在Windows上運行。我不確定的客戶中,但我們假設多平臺。服務器和客戶端應用程序都是用Python編寫的。
謝謝你的時間。
也許xmpp協議可以給你一些想法? (http://en.wikipedia.org/wiki/XMPP) – thebjorn 2013-02-23 23:50:15
@thebjorn XMPP似乎有點矯枉過正,因爲我在做什麼,我想。但我過去曾用它來通過互聯網進行溝通。 – Taoelism 2013-02-24 00:17:34