一种离线消息的处理方法与系统技术方案

技术编号:37678632 阅读:23 留言:0更新日期:2023-05-26 04:44
本发明专利技术公开了一种离线消息的处理方法与系统,服务端通过消息队列记录客户端的离线消息获取请求,并启动预设个数的消息处理线程;所述消息处理线程从消息队列中获取所述离线消息获取请求,并获取所述离线消息获取请求关联的离线消息,实时监测服务端与客户端的长连接是否空闲,仅在长连接空闲时进行离线消息的发送;客户端对服务端发送的在线消息进行即时展示,并在收到离线消息时根据时序信息对离线消息与页面中的在线消息进行重新排列后展示;本发明专利技术能够降低服务端的并发压力,避免循环发送离线消息导致正常的在线消息堵塞,避免历史的离线消息的延时发送导致与实时的在线消息发生展示时序错乱的情况。发生展示时序错乱的情况。发生展示时序错乱的情况。

【技术实现步骤摘要】
一种离线消息的处理方法与系统


[0001]本专利技术涉及互联网
,特别涉及一种离线消息的处理方法与系统。

技术介绍

[0002]在现在很多系统或者APP中,都存在使用消息推送这样的功能。而实际情况是,一般APP系统的客户端数量会达到几十上百万之多。如此多的APP每一个均需要与服务器保持有一个长连接,这样就有几十上百万的长连接连接到服务器上。同时,已建立长连接的APP需要每隔一定时间发送心跳包给服务器,由服务端来明确该个APP设备是否已经断线的标识。
[0003]在这种存在几十万到几百万的长连接连接到服务器的情况,就已经会给服务器带来了很大的压力了。由于手机客户端的网络情况不稳定,经常会出现断网,上网,或者网络切换等等网络上的问题,造成推送消息存在在线推送和离线推送两种情况。当网络稳定时通道建立,手机客户端在线,进行消息的在线推送。当断网或者其他情况,通道未成功建立,则表示手机客户端不在线,服务端保持离线消息,待客户端下次上线时,进行离线消息的发送。
[0004]此时,存在一种情况。当服务器重启时,大量的离线用户连接上来,均需要获取自己的离线消息,会给服务端带来很大的压力,导致再次宕机。或者服务器某一时间段,突然间有很多的离线用户上线,导致用户大量请求离线消息,服务器压力变大导致宕机。

技术实现思路

[0005]本专利技术所要解决的技术问题是:提供一种离线消息的处理方法与系统,可有效减少服务器压力,减少宕机的情况。
[0006]为了解决上述技术问题,本专利技术采用的技术方案为:
[0007]一种离线消息的处理方法,包括步骤:
[0008]S1、服务端通过消息队列记录客户端的离线消息获取请求,并启动预设个数的消息处理线程;
[0009]S2、所述消息处理线程从消息队列中获取所述离线消息获取请求,并获取所述离线消息获取请求关联的离线消息,实时监测服务端与客户端的长连接是否空闲,仅在长连接空闲时进行离线消息的发送;
[0010]S3、客户端对服务端发送的在线消息进行即时展示,并在收到离线消息时根据时序信息对离线消息与页面中的在线消息进行重新排列后展示。
[0011]为了解决上述技术问题,本专利技术采用的另一种技术方案为:
[0012]一种离线消息的处理系统,包括服务端与客户端,所述服务端包括第一处理器、第一存储器以及存储在所述第一存储器中并可在所述第一处理器上运行的第一计算机程序,所述客户端包括第二处理器、第二存储器以及存储在所述第二存储器中并可在所述第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步
骤:
[0013]S1、通过消息队列记录客户端的离线消息获取请求,并启动预设个数的消息处理线程;
[0014]S2、所述消息处理线程从消息队列中获取所述离线消息获取请求,并获取所述离线消息获取请求关联的离线消息,实时监测服务端与客户端的长连接是否空闲,仅在长连接空闲时进行离线消息的发送;
[0015]所述第二处理器执行所述第二计算机程序时实现以下步骤:
[0016]S3、对服务端发送的在线消息进行即时展示,并在收到离线消息时根据时序信息对离线消息与页面中的在线消息进行重新排列后展示。
[0017]本专利技术的有益效果在于:本专利技术的一种离线消息的处理方法与系统,对于客户端的离线消息获取请求,通过消息队列进行记录,并由预设个数的消息处理线程依据消息队列进行处理,降低服务端的并发压力,且仅在长连接空闲时进行离线消息的发送,避免循环发送离线消息导致正常的在线消息堵塞,客户端对在线消息进行实时展示,并在收到离线消息后根据消息时序重新排列,避免历史的离线消息的延时发送导致与实时的在线消息发生展示时序错乱的情况。
附图说明
[0018]图1为本专利技术实施例的一种离线消息的处理方法的流程图;
[0019]图2为本专利技术实施例的一种离线消息的处理系统的结构图;
[0020]标号说明:
[0021]1、一种离线消息的处理系统;2、服务端;3、第一处理器;4、第一存储器;5、客户端;6、第二处理器;7、第二存储器。
具体实施方式
[0022]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0023]请参照图1,一种离线消息的处理方法,包括步骤:
[0024]S1、服务端通过消息队列记录客户端的离线消息获取请求,并启动预设个数的消息处理线程;
[0025]S2、所述消息处理线程从消息队列中获取所述离线消息获取请求,并获取所述离线消息获取请求关联的离线消息,实时监测服务端与客户端的长连接是否空闲,仅在长连接空闲时进行离线消息的发送;
[0026]S3、客户端对服务端发送的在线消息进行即时展示,并在收到离线消息时根据时序信息对离线消息与页面中的在线消息进行重新排列后展示。
[0027]从上述描述可知,本专利技术的有益效果在于:本专利技术的一种离线消息的处理方法与系统,对于客户端的离线消息获取请求,通过消息队列进行记录,并由预设个数的消息处理线程依据消息队列进行处理,降低服务端的并发压力,且仅在长连接空闲时进行离线消息的发送,避免循环发送离线消息导致正常的在线消息堵塞,客户端对在线消息进行实时展示,并在收到离线消息后根据消息时序重新排列,避免历史的离线消息的延时发送导致与
实时的在线消息发生展示时序错乱的情况。
[0028]进一步地,所述步骤S1之前还包括步骤:
[0029]S01、服务端判断是否与用户建立长连接,若未与用户建立长连接,则接收用户的离线消息并存储至缓存或数据库中;
[0030]所述步骤S2具体为:
[0031]所述消息处理线程从消息队列中获取所述离线消息获取请求,并从缓存或数据库中获取所述客户端的离线消息,实时监测服务端与客户端的长连接是否空闲,仅在长连接空闲时进行离线消息的发送。
[0032]由上述描述可知,客户端离线时,服务端通过缓存或数据库对离线消息进行存储,保证离线消息的有效留存,在收到客户端上线后发送的离线消息获取请求后,从缓存或数据库中读取对应的离线消息,进而发送至客户端。
[0033]进一步地,所述步骤S1之前还包括步骤:
[0034]服务端接收客户端的长连接建立请求,与所述客户端建立长连接。
[0035]由上述描述可知,客户端网络回复后,及时与服务端建立长连接,保证消息的正常收发。
[0036]进一步地,客户端与服务端之间设有消息中间件,所述消息队列位于所述消息中间件中,客户端的所述离线消息获取请求发送至所述消息中间件,服务端通过消息中间件的消息队列记录所述离线消息获取请求,并由消息处理线程从所述消息中间件的消息队列中获取客户端的所述离线消息获取请求。
[0037]由上述描述可知,在客户端与服务端之间设有消息中间件,客户端的请求先到达消息中间件,之后由服务端向消息中间件进行请求获取,达到流量削峰的作本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种离线消息的处理方法,其特征在于,包括步骤:S1、服务端通过消息队列记录客户端的离线消息获取请求,并启动预设个数的消息处理线程;S2、所述消息处理线程从消息队列中获取所述离线消息获取请求,并获取所述离线消息获取请求关联的离线消息,实时监测服务端与客户端的长连接是否空闲,仅在长连接空闲时进行离线消息的发送;S3、客户端对服务端发送的在线消息进行即时展示,并在收到离线消息时根据时序信息对离线消息与页面中的在线消息进行重新排列后展示。2.根据权利要求1所述的一种离线消息的处理方法,其特征在于,所述步骤S1之前还包括步骤:S01、服务端判断是否与用户建立长连接,若未与用户建立长连接,则接收用户的离线消息并存储至缓存或数据库中;所述步骤S2具体为:所述消息处理线程从消息队列中获取所述离线消息获取请求,并从缓存或数据库中获取所述客户端的离线消息,实时监测服务端与客户端的长连接是否空闲,仅在长连接空闲时进行离线消息的发送。3.根据权利要求1所述的一种离线消息的处理方法,其特征在于,所述步骤S1之前还包括步骤:服务端接收客户端的长连接建立请求,与所述客户端建立长连接。4.根据权利要求1所述的一种离线消息的处理方法,其特征在于,客户端与服务端之间设有消息中间件,所述消息队列位于所述消息中间件中,客户端的所述离线消息获取请求发送至所述消息中间件,服务端通过消息中间件的消息队列记录所述离线消息获取请求,并由消息处理线程从所述消息中间件的消息队列中获取客户端的所述离线消息获取请求。5.一种离线消息的处理系统,包括服务端与客户端,所述服务端包括第一处理器、第一存储器以及存储在所述第一存储器中并可在所述第一处理器上运行的第一计算机程序,所述客户端包括第二处理器、第二存储器以及存储在...

【专利技术属性】
技术研发人员:刘德建郭孟祺陈娟郭凤英郑坦陈宏
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1