【问题标题】:Simple iPhone chat app简单的 iPhone 聊天应用
【发布时间】:2011-06-13 19:43:15
【问题描述】:

我正在使用 Titanium 开发一个 iPhone 应用程序,其中有一个 iPhone 用户之间的小型聊天组件(不是 SMS,而是实际的客户端-服务器聊天)

这是我的做法:我的后端会在 ASP.NET 中,每次用户发送消息时,它都会存储 [message_id, from_id, to_id, message_content],然后接收方会有一个计时器,每次都会刷新5 秒从 ASP.NET 服务器数据库中获取新消息。

但这引起了人们的担忧。如果我继续每 5 秒刷新一次,它将不断流式传输并耗尽接收器的带宽。当有新消息时,是否有更好的方法来实现侦听器/接收器?

我听说过套接字编程,但它是否适合这种情况?我该如何开始使用它?

谢谢

【问题讨论】:

    标签: iphone chat titanium


    【解决方案1】:

    您不仅会使用带宽,还会消耗电池电量。请改用push notifications

    【讨论】:

    • 你们知道“Words With Friends”这个游戏吗?我想知道他们是如何实现他们的聊天服务的。看起来他们也使用轮询方法。虽然我不确定。
    【解决方案2】:

    建议仅在应用程序在后台运行时使用推送通知,而不是在用户实际聊天时使用。这就是推送通知最初的设计目的。

    通过 http 轮询服务器是一个很好的解决方案,您可以使用一些技术来节省带宽,例如根据用户活动更新轮询频率(几分钟后没有聊天,将轮询时间减少到 30 秒)。

    您不能将推送通知用于聊天应用程序,因为您无法每分钟获得如此多的通知以使聊天看起来是实时的。一个简单的对服务器的 http poll 可以小到一个二进制包,不会显着影响用户的带宽。

    【讨论】:

    • 您不能将推送通知用于聊天应用程序,因为您无法每分钟获得如此多的通知以使聊天看起来是实时的。一个简单的对服务器的 http poll 可以小到一个二进制包,并且不会显着影响用户的带宽。
    • 每分钟可以请求多少个通知的限制是多少?另外,模拟器不支持推送通知,恐怕开发过程中会出现一些问题
    • 我相信你的话——这显然不容易测试。希望你不介意我编辑了你的帖子以包含额外的信息——我认为它可以提供更好的答案。
    【解决方案3】:

    为什么不直接使用 Apple 的推送通知系统? 每当用户收到消息时,您的后端可以向 iphone 发送推送通知,并且 iphone 会在收到推送时下载新消息,或者如果消息不是太长,您只需直接在推送通知中发送消息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多