[发明专利]一种实时消息传递方法及系统有效
申请号: | 201810388111.2 | 申请日: | 2018-04-26 |
公开(公告)号: | CN108667719B | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 黄东华;汤冬华;关炜健;何志明;何演 | 申请(专利权)人: | 广州品唯软件有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春水;唐京桥 |
地址: | 510620 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实时 消息 传递 方法 系统 | ||
本发明实施例公开了一种实时消息传递方法及系统。本发明中的实时消息传递方法中单用户的消息串行化处理,同一个发送端发送的实时消息转发到消息队列服务端的同一个消息队列,并且同一个消息队列的实时消息由同一个处理线程进行处理,只有当前一条实时消息处理完毕后才获取下一条实时消息,保障用户实时消息的顺序性和一致性,并且将实时消息发送给接受消息的接收端时只发送消息序列号,然后客户端根据消息序列号拉取消息,这种客户端消息拉取(同步)机制,结合服务器的消息绝对顺序性,有效保障消息顺序性及一致性同时减少ACK风暴存在的可能,解决了当前的实时消息传递方法稳定性差,容易导致消息传递顺序错乱,一致性被破坏的技术问题。
技术领域
本发明涉及通信技术领域,尤其涉及一种实时消息传递方法及系统。
背景技术
随着科技的发展,即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能。
当前对于即时通讯的消息处理方法,两个用户之间进行消息传递,服务器为保证高效率利用资源,一般采用并行的方式处理用户发送的实时消息,用户发送的实时消息往往会被多条线程同时处理,由于网络、CPU调度和多服务器同时运行等原因可能会出现消息顺序错乱,并且进行消息推送的时候,都会选择直接推送消息内容到客户端,容易因为网络抖动等原因发生消息错落。
因此,导致了当前的实时消息传递方法稳定性差,容易导致消息传递顺序错乱,一致性被破坏的技术问题。
发明内容
本发明提供了一种实时消息传递方法及系统,解决了当前的实时消息传递方法稳定性差,容易导致消息传递顺序错乱,一致性被破坏的技术问题。
本发明提供了一种实时消息传递方法,包括:
S1:第一接入层接收到各个发送端发送的实时消息,并根据各个实时消息中的第一用户ID将同一个发送端发送的实时消息转发到消息队列服务端的同一个消息队列中;
S2:第二接入层通过订阅消息队列服务端获取到消息队列中的实时消息并将实时消息发送到消息引擎进行处理,同一个消息队列的实时消息由第二接入层的同一个处理线程进行处理,第二接入层的处理线程接收到消息引擎返回的处理完成通知才进行下一次实时消息的获取;
S3:消息引擎根据实时消息中发送端的第一用户ID和接收端的第二用户ID生成递增的消息序列号,将实时消息和消息序列号存入缓存服务端和持久化服务端中,返回处理完成通知到第二接入层,并通过第三接入层将消息序列号发送到与第二用户ID对应的接收端;
S4:接收端判断第三接入层发送的消息序列号是否大于接收端本地的消息序列号,若是,则发送消息拉取请求到消息管理器使得消息管理器从缓存服务端或持久化服务端中返回所有消息序列号大于接收端本地的消息序列号的实时消息到接收端,并将实时消息中最大的消息序列号作为新的接收端本地的消息序列号。
优选地,步骤S1具体包括:第一接入层接收到各个发送端发送的实时消息,并根据各个实时消息中的第一用户ID将同一个发送端发送的实时消息转发到消息队列服务端的同一个消息队列中并且不同的发送端对应不同的消息队列。
优选地,步骤S2具体包括:第二接入层通过订阅消息队列服务端获取到消息队列中的实时消息并将实时消息发送到消息引擎进行处理,同一个消息队列的实时消息由第二接入层的同一个处理线程进行处理并且每一个消息队列对应不同的处理线程,第二接入层的处理线程接收到消息引擎返回的处理完成通知才进行下一次实时消息的获取。
优选地,步骤S3具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州品唯软件有限公司,未经广州品唯软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810388111.2/2.html,转载请声明来源钻瓜专利网。