23

我正在为 iPhone 制作一个聊天应用程序,但我不确定对话消息应该如何立即发送。

我已经阅读了大量关于这个主题的谷歌搜索结果。还有一次:
- http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server
- http://www.raywenderlich.com/3443/苹果推送通知服务教程第 12 部分

APNS 方法:
将向 iPhone 推送一条不可见的通知,指示有新消息可供阅读。因此,该应用程序将请求未读消息。因此,我不会手动轮询新消息,而是让 APNS 提供帮助。但我不确定?

套接字方法:
建立一个开放的套接字连接以共享数据。当在 db 中发现新消息时,它会自动将数据发送到应用程序。但是 IP 范围、防火墙、功耗和其他东西呢?我又不确定:(

轮询方法:
在我轮询请求的时间间隔,功耗是我的敌人。

我的问题:
- 哪种方法最好?
- 其他建议?
- 我真的需要一些在这个话题上有经验的人的缺点和优点。

例子总是好的。
谢谢

4

2 回答 2

6

我认为您主要关心的是如何在您的应用程序处于后台时接收新消息。因为当我可以通过 WhatsApp 之类的应用程序接收通知时,我不会整天打开一个信使应用程序。

比 TCPIP 套接字更好,您可以使用websockets。由于它是 HTTP,因此没有防火墙问题,但需要与前台的应用程序建立永久连接,这会耗尽电池。

并且因为只有音乐、位置或语音 ip 被允许在后台运行,所以除非应用程序打开,否则您无法进行轮询。请注意,如果您注册这些后台任务并执行其他操作,Apple 会注意到并拒绝您的应用程序。

因此,请使用 APNS。这就是 WhatsApp 所做的。

于 2012-07-02T09:08:13.660 回答
2

使用 XMPP SERVER 进行聊天

http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-xmpp-integration/

我希望这个链接对你有用。

于 2012-07-02T09:05:01.187 回答