一种高效非阻塞的消息推送方法与流程

文档序号:40679668发布日期:2025-01-14 21:45阅读:12来源:国知局
一种高效非阻塞的消息推送方法与流程

本发明涉及移动通信网络,尤其涉及一种高效非阻塞的消息推送方法。


背景技术:

1、随着互联网和移动通信技术的不断进步和普及,短信业务已经成为了人们日常生活中不可或缺的一部分。短信业务是移动通信网络中的一项基本业务,用户在发送短信后,通常希望能够及时获取短信的发送状态,例如短信是否发送成功、是否被接收方成功接收等。为了实现这一功能,短信中心通常会采用短信状态报告(delivery report,简称dr)机制,在短信发送过程中,短信中心会生成短信状态报告,并通过回调接口将短信状态报告通知给短信发送方。企业客户对其业务短信及时、可靠地触达到终端用户并且获取其发送状态的要求越来越高,特别是在商业应用、金融交易、紧急通知等场景下,短信状态报告的实时性和准确性显得尤为重要。

2、早期的短信状态报告机制主要是基于单线程的轮询方式,即客户端定期向服务器发起请求,查询短信的发送状态。后续的技术发展中出现了基于回调的短信状态报告推送机制,在这种机制下,服务器在短信发送状态发生变化时,主动向客户端推送状态报告。

3、本专利发明人在实现本发明实施例技术方法的过程中,至少发现现有技术中存在如下技术问题:

4、基于单线程轮询方式的短信状态报告机制,在短信发送量不大时还能够满足需求,但是随着短信发送量的增加,轮询方式造成了大量的无效请求和服务器负载,效率低下,用户体验较差。基于回调的短信状态报告推送机制,虽然能够减少无效请求,提高效率,然而,此回调方式仍然存在一些问题,比如单线程处理的瓶颈、网络阻塞等。

5、在现有的技术中,短信状态报告的推送方法通常采用单线程的方式或主动发起请求查询的方式。这种方式不仅效率低下,当短信发送量较大时,单线程的处理能力有限,容易造成服务器性能瓶颈和网络阻塞等情况,导致短信状态报告的推送延迟,企业业务短信无法及时下发给终端用户,特别是在金融交易和紧急通知时短信无法及时下发给用户,会严重影响业务的开展。此外,现有的推送方法可能会因为网络延迟或系统繁忙导致阻塞,进一步降低推送效率。

6、综上,现有的短信状态报告推送方法无法满足实际使用需求。


技术实现思路

1、本发明实施例提供一种高效非阻塞的消息推送方法,解决了现有的短信状态报告推送方法无法满足实际使用需求的问题。

2、本发明实施例提供了一种高效非阻塞的消息推送方法,包括:

3、客户端使用socket与短信平台服务器端建立连接,短信平台服务器为每个连接创建会话;

4、客户端发送鉴权请求进行鉴权;

5、客户端消息发送请求自动生成消息队列;

6、根据客户端配置动态创建和分配消息推送任务线程;

7、消息推送任务非堵塞异步推送消息;

8、通过心跳机制和重连策略维持socket长连接。

9、可选的,所述客户端使用socket与短信平台服务器端建立连接,短信平台服务器为每个连接创建会话,包括:

10、短信平台服务器开启监听端口,等待客户端的连接请求;

11、tcp通过三次握手建立客户端和短信平台服务器之间的连接,短信平台服务器为每个连接创建会话。

12、可选的,所述tcp通过三次握手建立客户端和短信平台服务器之间的连接,包括:

13、客户端向短信平台服务器发送一个连接请求syn报文,同时随机生成一个序列号并发送给短信平台服务器;

14、短信平台服务器收到连接请求syn报文后,发送一个同意建立连接syn报文,并随机生成一个序列号,发送确认客户端序列号ack报文;

15、客户端收到短信平台服务器的同意建立连接syn报文和确认客户端序列号ack报文后,向短信平台服务器发送一个确认服务器ack报文,短信平台服务器收到确认服务器ack报文后,确认连接建立成功。

16、可选的,所述客户端发送鉴权请求进行鉴权,包括:

17、客户端向短信平台服务器发送鉴权信息;

18、短信平台服务器验证鉴权信息后,返回鉴权成功信息或鉴权失败消息;

19、当鉴权成功时,客户端收到短信平台服务器返回的鉴权成功消息,采用cmpp20协议进行短信消息推送服务;当鉴权失败时,客户端收到短信平台服务器返回的鉴权失败消息,关闭客户端与短信平台服务器之间的连接。

20、可选的,所述鉴权信息包括用户、密码、短息通道配置参数。

21、可选的,所述客户端消息发送请求自动生成消息队列,包括:

22、客户端应用程序创建一个消息,客户端将消息发送给消息队列服务;

23、消息队列服务接收到消息后,将其放入客户端消息队列中;

24、根据预设的客户端消息处理职责链,有序对消息进行加工处理,消息队列根据预设处理逻辑,将消息路由到不同的队列;

25、配置监控工具,对消息队列处理与服务过程进行管理。

26、可选的,所述根据客户端配置动态创建和分配消息推送任务线程,包括:

27、短信平台服务器收集客户端配置信息;

28、任务管理器解析客户端配置信息并创建消息推送任务,向线程资源池注册任务;

29、使用线程池管理线程资源,根据监控数据和客户端配置要求,taskmanager动态调整线程池大小和任务分配策略,以适应不断变化的需求。

30、可选的,所述消息推送任务非堵塞异步推送消息,包括:

31、任务从消息队列获取消息;

32、处理器对消息进行加工处理;

33、职责链对消息进行过滤;

34、非阻塞线程采用同步非阻塞i/o模型处理会话数据读写;

35、基础服务推送消息。

36、可选的,所述处理器对消息进行加工处理,包括:处理器对消息进行数据匹配处理、处理器识别消息的接收对象和接收目的地。

37、可选的,所述通过心跳机制和重连策略维持socket长连接,包括:

38、客户端和短信平台服务器协商心跳间隔时间,在心跳间隔时间内,若没有数据包交换,客户端将主动发送一个心跳包给短信平台服务器;

39、如果客户端在心跳间隔时间内收到短信平台服务器的回应,则连接有效;否则,连接可能已断开;

40、如果客户端检测到连接已断开时,尝试进行重连;如果短信平台服务器长时间没有收到心跳包,关闭连接并释放资源。

41、本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

42、本发明能够提供一种能够提高短信状态报告推送效率且非阻塞的方法,通过引入了多线程法和非堵塞异步推送消息来提升短信状态报告的推送效率。多线程法使得系统能够并行处理多个短信状态报告推送任务,而非堵塞异步推送消息则确保了线程在等待io操作完成时不会阻塞,从而能够处理更多的请求。此外,在短信状态报告推送的网络通信层,采用socket长连接的通信技术,进一步提高了短信状态报告的实时推送性能。由于socket长连接保持了客户端和服务端之间的连接,能够减少频繁建立和断开连接的开销,从而降低了延迟,这对于需要实时响应的短信应用场景,如在商业应用、金融交易、紧急通知等场景尤其重要。通过心跳机制和重连策略,能够保证连接的稳定性,特别是在大量短信发送场景下,能够保持高效的数据传输。

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