推送计数不准确的问题

1. 问题

有部分客户发现了一个问题,假如某个苹果手机有5条未读消息了,杀掉应用或者后台后,再给当前用户发消息,应用角标的数字从5变成1,之后从1开始累加,打开应用收到消息就正常了。

2. 原因

了解过野火IM推送的同学们都知道,IM服务发送给推送服务的数据中有个未读数,这个数是当前客户未收到计数消息个数,推送时填写角标数就是这个数字。这样当用户在服务器上有多少条未读数据没有收取下来,推送到客户端的角标就是几。这样就没有跟客户端上未读数进行累加,问题就出现了。

3. 解决办法

其实这是个很小的问题,严格的数字没有太大的实际意义,至少目前在微信上也都是这么做的,大家可以拿微信对比测试一下,其实我们的实现思路跟微信也基本类似。如果真要做也是可以做到的,需要付出额外的代码,就是需要把本地未读数的信息实时同步到推送服务,这样就可以在推送服务为每个用户进行计数。同步未读数的时机可以在用户消除未读数时(比如进入到一个会话)和程序退到后台等时机去同步。

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2021-11-27 23:08:18

results matching ""

    No results matching ""