一种即时通讯消息的防丢失方法与流程

文档序号:15777934发布日期:2018-10-30 15:47阅读:1186来源:国知局
一种即时通讯消息的防丢失方法与流程

本发明涉及计算机信息技术即时通讯领域,具体来说,涉及一种即时通讯消息的防丢失方法。



背景技术:

开发即时通讯软件系统,一定逃避不了的话题就是投递可靠性。虽然当前的网络带宽比之前已经改良许多,但网络结构也越来越复杂,无线网络环境尤其为甚。

当前的消息推送技术基本都由qos机制来最大程度的保证在线消息到达客户端的可靠性,但仍然还是不能保证极端情况下或者离线消息的准确到达。

针对相关技术中的问题,目前尚未提出有效的解决方案。



技术实现要素:

针对相关技术中的上述技术问题,本发明提出一种即时通讯消息的防丢失方法,能够使客户端及时发现并接收遗漏的消息。

为实现上述技术目的,本发明的技术方案是这样实现的:

一种即时通讯消息的防丢失方法,包括以下步骤:

s1即时通讯客户端接收消息,并检查每一消息id;

s2所述即时通讯客户端将遗漏的消息id及所接收消息的最大id发送至消息管理服务器,同时发送消息请求;

s3消息管理服务器将所述遗漏的消息及id大于所述最大id的消息发送给所述即时通讯客户端。

进一步的,s1之前还包括步骤s0:按照消息管理服务器分配的消息队列顺序,消息推送服务器将id连续的消息队列推送给即时通讯客户端。

作为优选,所述步骤s0中消息管理服务器根据消息到达服务器端的顺序给每个即时通讯客户端分配一个连续的消息id队列。

进一步的,所述s1具体包括:

s11即时通讯客户端接收消息;

s12所述即时通讯客户端检查每一个消息的id,将收到的消息id与前一条消息id对比;

s13当存在消息id不连续的情况,则将两个id之间遗漏的id记为遗漏的消息id。

作为优选,s3中所述消息管理服务器采取分片返回的方式将所述遗漏的消息及id大于所述最大id的消息发送给所述即时通讯客户端。

进一步的,所述即时通讯客户端包括pc端、web端以及手机移动客户端。

本发明的有益效果:通过对消息进行连续编码,方便筛选出其中的遗漏消息;同时对最大消息id进行比对,准确找到非正常推送的消息,保证中间或最新遗漏的消息能够到达客户端。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例所述的一种即时通讯消息的防丢失方法的流程示意图;

图2是根据本发明实施例所述的一种即时通讯消息的防丢失方法的消息流转示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

如图1和2所示,根据本发明实施例所述的一种即时通讯消息的防丢失方法,包括以下步骤:

s1即时通讯客户端接收消息,并检查每一消息id;

s2所述即时通讯客户端将遗漏的消息id及所接收消息的最大id发送至消息管理服务器,同时发送消息请求;

s3消息管理服务器将所述遗漏的消息及id大于所述最大id的消息发送给所述即时通讯客户端。

进一步的,s1之前还包括步骤s0:按照消息管理服务器分配的消息队列顺序,消息推送服务器将id连续的消息队列推送给即时通讯客户端。

作为优选,所述步骤s0中消息管理服务器根据消息到达服务器端的顺序给每个即时通讯客户端分配一个连续的消息id队列。

进一步的,所述s1具体包括:

s11即时通讯客户端接收消息;

s12所述即时通讯客户端检查每一个消息的id,将收到的消息id与前一条消息id对比;

s13当存在消息id不连续的情况,则将两个id之间遗漏的id记为遗漏的消息id。

作为优选,s3中所述消息管理服务器采取分片返回的方式将所述遗漏的消息及id大于所述最大id的消息发送给所述即时通讯客户端。

进一步的,所述即时通讯客户端包括pc端、web端以及手机移动客户端。

为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。

在具体使用时,根据本发明所述的一种即时通讯消息的防丢失方法,按照以下步骤循环进行:

步骤1:即时通讯客户端启动时先查询之前记录的被认为遗漏的消息id及本地最大的消息id,请求消息管理服务器返回遗漏的消息及大于本地最大消息id的以后的消息;

步骤2:消息管理服务端查找出遗漏的消息及大于客户端发送的最大消息id的对应消息返回给客户端,由于离线消息可能数量很大往往会采取分片返回;

步骤3:客户端接收到服务器端返回的消息进行展示或保存;

步骤4:当有推送到达并且接收到的消息与前面不连续时重复前面的1,2,3步骤保证消息可靠到达客户端。

如图2所示,首先消息管理服务端会根据消息发送客户端的消息到达服务器端的顺序给每个即时通讯客户端分配一个连续的消息id队列,例如:0,1,2,3,4,5,6。消息推送服务器会按照队列顺序将消息推送给即时通讯客户端。当即时通讯客户端收到即时通信消息后会检查每一个消息的id,并与收到的前一条消息id做对比,如果消息id不连续会认为中间有遗漏的消息,并把遗漏的消息id做记录。例如:客户端先后接收到消息id:0,1,2,3,6,当客户端收到消息id是6的消息后,会与上一次收到消息id为3的消息做对比,发现此条消息的消息id与前一条消息的消息id是不连续的,中间缺少了消息id是4和5的消息,客户端会向服务器发起请求,获取消息id是4和5的消息。

此外,还存在的一种遗漏是遗漏的消息id大于当前即时通讯客户端所接收消息的最大id,例如服务器端先后接受到消息id:0,1,2,3,4,5,6,7,并由消息推送服务器按先后顺序推送给即时通讯客户端,即时通讯客户端先后接收到消息id:0,1,2,3,6。此时,除前面说明的消息4和5以外,消息id为7的消息也由于某种原因迟迟未能到达即时通讯客户端,在即时通讯客户端长期不在线时此种情况经常会发生。因为服务器端推送的队列需要占用资源,而资源不是无穷尽的,服务器端为了节省资源往往会将长期不能到达的消息移出队列。当即时通讯客户端接收到消息id是6的消息时除了将消息id4,5发送给消息管理服务器以外还会将收到的最新消息id6发送给消息管理服务器,消息管理服务器除了将4,5返回给即时通讯客户端,还会将本地接收到的消息id大于6的消息返回给即时通讯客户端。

综上所述,借助于本发明的上述技术方案,通过对消息进行连续编码,方便筛选出其中的遗漏消息;同时对最大消息id进行比对,准确找到非正常推送的消息,保证中间或最新遗漏的消息能够到达客户端。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1