我正在使用Titanium开发一个iPhone应用程序,其中iPhone用户之间有一个小的聊天组件(不是短信,而是实际的客户端 - 服务器聊天)
这是我的方法:我的后端将在ASP.NET中,每次用户发送消息时,它将存储[message_id,from_id,to_id,message_content],然后接收器将有一个计时器刷新每个5秒钟从ASP.NET服务器数据库中获取新消息。
但这引起了人们的关注。如果我每隔5秒钟继续刷新一次,它将不断地流动并耗尽接收器的带宽。当有新消息时,是否有更好的方法来实现监听器/接收器?
我听说过socket编程,但对于这种情况它是一个很好的方法,我该如何开始使用它?
谢谢
答案 0 :(得分:1)
你不仅会使用带宽,还会耗尽电池电量。请改用push notifications。
答案 1 :(得分:1)
建议仅在应用程序在后台运行时使用推送通知,而不是在用户实际聊天时使用推送通知。这就是推送通知首先设计的目的。
通过http轮询服务器是一个很好的解决方案,有一些技术可以保存你可以使用的带宽,例如根据用户活动更新轮询频率(几分钟后没有聊天,将轮询时间减少到30秒) )。
您无法对聊天应用程序使用推送通知,因为您无法每分钟获得如此多的通知,以使聊天看起来是实时的。对服务器的简单http轮询可以与一个二进制包一样小,并且不会显着影响用户的带宽。
答案 2 :(得分:0)
为什么不使用Apple的推送通知系统? 每当用户收到消息时,您的后端可以向iphone发送推送通知,并且iphone会在收到推送时下载新消息,或者如果消息不是太长,您只需直接在推送通知中发送消息< / p>