在IM风格的应用程序中接收新消息的最佳方式

时间:2010-12-01 16:17:25

标签: iphone objective-c cocoa-touch

目前我只是每隔3秒查询一次服务器,看看是否有使用NSURLRequest等的新消息。如果有它将它们保存到数据库并发送NSNotificationCenter通知,如果没有,则它只等待3秒并再次尝试。

这是最好的方法吗?我意识到(在这里形成帖子和其他地方的信息)打开与服务器的持久连接是tedius而不是推荐,所以这是最好的方法吗?

我主要担心的是,如果没有新消息,它下载一个空的(信息,但仍然是几个字节大)XML提要,并且每3秒运行一次最终会加起来并使用大量数据

任何指针都会非常感激。

由于

3 个答案:

答案 0 :(得分:4)

XMPP会通过长期生存的TCP连接来实现这一点。如何使用XMPP服务?

答案 1 :(得分:1)

我自己编写的一个应用程序是IM客户端,我们开发的应用程序也具有IM功能。

我自己的应用程序使用直接套接字连接和TCP进行通信。 TCP连接通过心跳消息保持活动状态。

另一方面,工作中的应用程序使用基于XMPP的解决方案,它基本上是相同的,因为它使用TCP或UDP连接,而不是专有协议(在我自己的IM应用程序的情况下), XML消息来回发送。

这取决于您的服务器当前的实现方式?这仅仅是针对您的应用的聊天实现,还是可供其他可能未使用iPhone应用的用户使用?您是否可以在不破坏任何内容的情况下更改服务器上的实现?

答案 2 :(得分:0)

push notifications是您应用的选项吗?