2011-06-13 333 views
0

我使用鈦來開發iPhone應用程序,其中有iPhone用戶之間有一個小聊天組件(不是短信,但實際的客戶端 - 服務器聊天)簡單的iPhone聊天應用程序

這是我的方法:我的背end將在ASP.NET中,每當用戶發送消息時,它將存儲[message_id,from_id,to_id,message_content],然後接收者將有一個定時器,每5秒刷新一次以從ASP中接收新消息.NET服務器數據庫。

但這引起了關注。如果我每5秒鐘刷新一次,它會不斷地流出並耗盡接收器的帶寬。有新消息時,有更好的方法來實現監聽器/接收器嗎?

我聽說過套接字編程,但這是一種很好的方法,我該如何開始使用它?

謝謝

回答

0

爲什麼不使用蘋果的推送通知系統? 每當用戶收到消息時,您的後端都可以向iphone發送推送通知,並且iphone在接收到推送時會下載新消息,或者消息不會太長,您只需在推送通知中直接發送消息

1

你不會只是使用帶寬,你也會吃掉電池電量。改爲使用push notifications

+0

你們知道遊戲「Words With Friends?」。 我不知道他們是如何實現他們的聊天服務。看起來他們也使用輪詢方法。雖然我不確定。 – Ethan 2011-06-13 21:17:34

1

建議僅在應用程序在後臺運行時使用推送通知,而不是在用戶實際聊天時使用推送通知。這就是推送通知首先被設計的。

通過http輪詢服務器是一個很好的解決方案,並且有一些技巧可以保存您可以使用的帶寬,例如根據用戶活動更新輪詢的頻率(幾分鐘後無聊,將輪詢時間減少到30秒)。

您無法爲聊天應用程序使用推送通知,因爲您無法每分鐘獲得如此多的通知以使聊天顯示爲實時。對服務器的簡單HTTP輪詢可以像一個二進制包一樣小,並且不會顯着影響用戶的帶寬。

+0

您無法爲聊天應用程序使用推送通知,因爲您無法每分鐘獲取太多通知以使聊天顯示爲實時。對服務器的簡單HTTP輪詢可以像一個二進制包一樣小,並且不會顯着影響用戶的帶寬。 – 2011-06-13 21:00:56

+0

每分鐘可以請求多少通知的限制是多少? 此外,模擬器不支持推送通知,恐怕它可能會導致一些問題的發展。 – Ethan 2011-06-13 21:15:21

+0

我會在這一點上說出你的話 - 它顯然不容易測試。希望您不要介意我編輯了您的文章以包含額外的信息 - 我認爲這會提供更好的答案。 – Caleb 2011-06-13 21:27:04