我創建了一個由客戶端輪詢驅動的簡單聊天服務器。客戶端每隔幾秒發送一次數據請求,並獲取任何新消息以及關於對方是否仍然連接的信息。如何創建不是由輪詢驅動的聊天服務器?
由於客戶端運行在移動平臺(iPhone)上,我一直在尋找擺脫輪詢的方式,這會迅速耗盡電池電量。我已經讀過,可以無限期地打開http連接,但還沒有理解如何在實踐中使用這種技術。我也想知道這樣的連接是否足夠穩定以便在移動設置中使用。
理想的情況是服務器只在發生影響它們的事件(例如對等方發佈消息或離線)時才向客戶端發送數據。
建議嘗試通過http完成此操作,還是必須通過tcp編寫自己的協議?定製xmpp到我的需求有多困難(我的聊天服務器有一些我必須輕鬆實現的特殊功能)。
http://stackoverflow.com/questions/337985/comet-server-push-to-client-on-iphone – 2009-07-23 16:54:04
是的,這是我的想法,並與羅素L鏈接的討論也是非常有用的。謝謝。 – Felixyz 2009-07-23 17:12:43