2011-06-13 189 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