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

5 篇文章 0 订阅
4 篇文章 0 订阅

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

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


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


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

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

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

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

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


大概的流程图如下:



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值