码迷,mamicode.com
首页 > 移动开发 > 详细

IOS及时通讯中消息的处理方式

时间:2014-12-26 14:42:00      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:聊天   及时通讯   socket   模拟   apns   

通常我们做及时通讯的消息,都是使用socket,原因其实很多,其中最重要的一点就是socket可以由服务器主动推送消息到客户端。

我们都知道在IOS中,我们的APP可以被切换到后台,当我们APP被切换到后台的时候,官方的说法是说,可以给我们300秒的时间,处理一些从前台进入后台的事情,但不一定是300秒,如果内存吃紧的情况的时候,就会被操作系统无情的kill掉。


通常客户端与服务器保持连接的方法通常是通过心跳包维护socket连接的,当我们的APP被切换到后台的时候,如果连接不断的话,那么我们的连接理论上是可以使用的,但这时候当服务器向客户端推送消息的时候我们应该怎么显示呢?


我在做这个的时候,曾经用过2种方式处理:

1、当我进入后台的时候把,我进入后台的状态,告诉服务器,让服务器进行推送消息到客户端(APNS),这样消息就可以显示到桌面上了,但这种方式消息反映往往比较迟钝。我们试想一下,用户会怎么样使用我们的软件呢?

步骤应该是这个样子的:打开APP---->聊天------->切到前台------>收到消息-------->打开APP进行聊天,后来经过讨论我们使用了第2中方式。

2、在线模式服务器推送消息。

其实就是当我们的APP在后台,并且socket是活着的时候,把socket的消息,用定时器的方式,模拟由操作系统的方式(模拟APNS),发送显示到桌面上。


大概的流程图如下:

技术分享


IOS及时通讯中消息的处理方式

标签:聊天   及时通讯   socket   模拟   apns   

原文地址:http://blog.csdn.net/doubleuto/article/details/42170591

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!