[发明专利]一种实时消息传递方法及系统有效
申请号: | 201810388111.2 | 申请日: | 2018-04-26 |
公开(公告)号: | CN108667719B | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 黄东华;汤冬华;关炜健;何志明;何演 | 申请(专利权)人: | 广州品唯软件有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春水;唐京桥 |
地址: | 510620 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实时 消息 传递 方法 系统 | ||
1.一种实时消息传递方法,其特征在于,包括:
S1:第一接入层接收到各个发送端发送的实时消息,并根据各个实时消息中的第一用户ID将同一个发送端发送的实时消息转发到消息队列服务端的同一个消息队列中;
S2:第二接入层通过订阅消息队列服务端获取到消息队列中的实时消息并将实时消息发送到消息引擎进行处理,同一个消息队列的实时消息由第二接入层的同一个处理线程进行处理,第二接入层的处理线程接收到消息引擎返回的处理完成通知才进行下一次实时消息的获取;
S3:消息引擎根据实时消息中发送端的第一用户ID和接收端的第二用户ID生成递增的消息序列号,将实时消息和消息序列号存入缓存服务端和持久化服务端中,返回处理完成通知到第二接入层,并通过第三接入层将消息序列号发送到与第二用户ID对应的接收端;
S4:接收端判断第三接入层发送的消息序列号是否大于接收端本地的消息序列号,若是,则发送消息拉取请求到消息管理器使得消息管理器从缓存服务端或持久化服务端中返回所有消息序列号大于接收端本地的消息序列号的实时消息到接收端,并将实时消息中最大的消息序列号作为新的接收端本地的消息序列号。
2.根据权利要求1所述的一种实时消息传递方法,其特征在于,步骤S1具体包括:第一接入层接收到各个发送端发送的实时消息,并根据各个实时消息中的第一用户ID将同一个发送端发送的实时消息转发到消息队列服务端的同一个消息队列中并且不同的发送端对应不同的消息队列。
3.根据权利要求1所述的一种实时消息传递方法,其特征在于,步骤S2具体包括:第二接入层通过订阅消息队列服务端获取到消息队列中的实时消息并将实时消息发送到消息引擎进行处理,同一个消息队列的实时消息由第二接入层的同一个处理线程进行处理并且每一个消息队列对应不同的处理线程,第二接入层的处理线程接收到消息引擎返回的处理完成通知才进行下一次实时消息的获取。
4.根据权利要求1所述的一种实时消息传递方法,其特征在于,步骤S3具体包括:
S31:消息引擎根据实时消息中发送端的第一用户ID和接收端的第二用户ID获取上一次生成的消息序列号,将上一次生成的消息序列号加上预置数值生成实时消息对应的消息序列号,其中,每一组第一用户ID和第二用户ID对应的消息序列号独立生成,预置数值大于0;
S32:消息引擎将实时消息和实时消息对应的消息序列号存入缓存服务端和持久化服务端中,返回处理完成通知到第二接入层,并通过第三接入层将消息序列号发送到与第二用户ID对应的接收端;
S33:消息引擎判断上一次生成的消息序列号是否能够整除序列号批量申请数量,若是,则将用户最大序列号加上序列号批量申请数量得到新的用户最大序列号,并将新的用户最大序列号存入持久化服务端中替换原有的用户最大序列号。
5.根据权利要求1所述的一种实时消息传递方法,其特征在于,步骤S5具体包括:接收端判断第三接入层发送的消息序列号是否大于接收端本地的消息序列号,若是,则发送消息拉取请求到消息管理器使得消息管理器从缓存服务端或持久化服务端中返回所有消息序列号大于接收端本地的消息序列号的实时消息到接收端,并将实时消息中最大的消息序列号作为新的接收端本地的消息序列号,若否,则不对第三接入层发送的消息序列号进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州品唯软件有限公司,未经广州品唯软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810388111.2/1.html,转载请声明来源钻瓜专利网。