一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种消息推送方法、系统、设备及可读存储介质与流程

2022-07-16 11:21:16 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种消息推送方法、系统、设备及可读存储介质。


背景技术:

2.在现有技术中,当物联网设备需要与云端服务器基于物联网进行消息通信时,需要建立物联网设备和云端的长连接服务器之间的长连接服务,随着物联网设备的不断增加,需要在云端设置多个长连接服务器,因此需要将物联网设备和长连接服务器的对应关系保存至云端的缓存(例如,redis)中,如图1所示,在现有技术中当云端的管理后台生成了发送至目标物联网设备的待推送的消息时,需要管理后台将待推送的消息先发送至管理后台服务器,再由管理后台服务器从缓存中查询与该目标物联网设备建立长连接的长连接服务器,并通过查询到的长连接服务器将待推送的消息发送至目标物联网设备,但是这种消息推送方式严重依赖缓存,如果缓存出问题,那么长连接服务器的消息推送功能将完全瘫痪;即使缓存从异常状态恢复,由于缓存中记录的物联网设备与长连接服务器的对应关系消失,管理后台服务器无法从缓存中获取与待推送的消息对应的长连接服务器,也就无法将待推送的消息发送至长连接服务器,导致消息推送中断,若想继续进行消息推送,则需要等待缓存重新记录物联网设备与长连接服务器的对应关系,严重影响物联网设备与云端进行消息通信的效率。
3.因此,如何在物联网设备与云端进行消息通信的场景中移除消息推送对缓存的依赖成为本领域技术人员亟需解决的技术问题。


技术实现要素:

4.本发明的目的在于提供一种消息推送方法、系统、设备及可读存储介质,可以在物联网设备与云端进行消息通信的场景中移除消息推送对缓存的依赖。
5.根据本发明的一个方面,提供了一种消息推送方法,应用于物联网的长连接服务器中,所述方法包括:
6.按照设定时间间隔定期从所述物联网的预设存储空间中获取待推送的消息;其中,所述待推送的消息是由所述物联网的管理后台通过管理后台服务器存储到所述预设存储空间中的;
7.从所述待推送的消息中解析出目标物联网设备的身份识别信息,并判断在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息;
8.若是,则将所述待推送的消息通过长连接发送至所述目标物联网设备;若否,则丢弃所述待推送的消息。
9.可选的,在所述按照设定时间间隔定期从所述物联网的预设存储空间中获取待推送的消息之前,所述方法还包括:
10.接收由待建连物联网设备发送并通过负载均衡设备转发而来的建连请求;
11.从所述建连请求中解析出所述待建连物联网设备的身份识别信息;
12.基于解析出的身份识别信息,在所述长连接服务器和所述待建连物联网设备之间建立长连接。
13.可选的,在所述基于解析出的身份识别信息,在所述长连接服务器和所述待建连物联网设备之间建立长连接之后,所述方法还包括:
14.获取建立的长连接的套接字socket,将所述待建连物联网设备的身份识别信息和所述套接字socket存储到与所述长连接服务器对应的身份信息表中,并在所述身份信息表中建立所述待建连物联网设备的身份识别信息和所述套接字socket的关联关系。
15.可选的,所述判断在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息,具体包括:
16.判断在与所述长连接服务对应的身份信息表中是否存在所述目标物联网设备的身份识别信息;
17.所述将所述待推送的消息通过长连接发送至所述目标物联网设备,具体包括:
18.从与所述长连接服务对应的身份信息表中获取与所述目标物联网设备的身份识别信息具有关联关系的目标套接字socket;
19.通过与所述目标套接字socket对应的长连接,将所述待推送的消息发送至所述目标物联网设备。
20.可选的,所述预设存储空间为消息中间件。
21.为了实现上述目的,本发明还提供一种消息推送系统,应用于物联网中,所述系统包括:物联网设备、负载均衡设备、长连接服务器、管理后台和管理后台服务器;
22.其中,所述物联网设备,用于向所述负载均衡设备发送表征请求与长连接服务器建立长连接的建连请求;
23.所述负载均衡设备,用于根据各个长连接服务器的剩余资源,确定出目标长连接服务器,并将所述建连请求转发至所述目标长连接服务器;
24.所述长连接服务器,用于从所述建连请求中解析出待建连物联网设备的身份识别信息,并基于解析出的身份识别信息,在所述长连接服务器和所述待建连物联网设备之间建立长连接;
25.所述管理后台,用于生成发送至目标物联网设备的待推送的消息,并将所述待推送的消息发送至所述管理后台服务器;
26.所述管理后台服务器,用于将所述待推送的消息转发至消息中间件;
27.所述长连接服务器,还用于按照设定时间间隔定期从所述消息中间件中获取待推送的消息;从所述待推送的消息中解析出目标物联网设备的身份识别信息,并判断在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息;若是,则将所述待推送的消息通过长连接发送至所述目标物联网设备;若否,则丢弃所述待推送的消息。
28.可选的,所述长连接服务器在执行完所述在所述长连接服务器和所述待建连物联网设备之间建立长连接的步骤之后,还用于:
29.获取建立的长连接的套接字socket,将所述待建连物联网设备的身份识别信息和
所述套接字socket存储到与所述长连接服务器对应的身份信息表中,并在所述身份信息表中建立所述待建连物联网设备的身份识别信息和所述套接字socket的关联关系。
30.可选的,所述长连接服务器在执行所述判断在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息的步骤时,具体用于:
31.判断在所述身份信息表中是否存在所述目标物联网设备的身份识别信息;
32.所述长连接服务器在执行所述将所述待推送的消息通过长连接发送至所述目标物联网设备的步骤时,具体用于:
33.从所述身份信息表中获取与所述目标物联网设备的身份识别信息具有关联关系的目标套接字socket;
34.通过与所述目标套接字socket对应的长连接,将所述待推送的消息发送至所述目标物联网设备。
35.为了实现上述目的,本发明还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的消息推送方法的步骤。
36.为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的消息推送方法的步骤。
37.本发明提供的消息推送方法、系统、设备及可读存储介质,通过使用消息中间件保存由物联网的管理后台生产的用于推送至目标物联网设备的待推送的消息,再通过长连接服务器定期从消息中间件中拉取待推送的消息,并将该待推送的消息推送至与自身建立长连接的目标物联网设备中,以实现云端的管理后台与物联网设备之间的消息通信;由于无需使用缓存记录物联网设备和长连接服务器的对应关系,摆脱了现有技术中消息推送过程对缓存的依赖,不会出现因为缓存出现异常,需要重新缓存物联网设备与长连接服务器的对应关系的情况,也无需在物联网设备更换与长连接服务器的对应关系时更新缓存,使消息推送的架构更加简洁;此外,在云端的管理后台给物联网设备推送消息时,无需让管理后台服务器从缓存中获取与该物联网设备对应的长连接服务器,也无需将待推送的消息发送至长连接服务器中,简化了云端的管理后台和管理后台服务器的推送逻辑;同时,由于消息中间件具有削峰填谷的功能,因此通过消息中间件保存待推送的消息,可以轻松应对管理后台服务器瞬时发送大量待推送的消息的场景,缓解物联网设备和长连接服务器的运行压力;而且因为物联网设备和长连接服务器的对应关系保存在长连接服务器内,即使消息中间件出现了异常,也不会对物联网设备和长连接服务器的对应关系产生影响,所以使用消息中间件代替缓存,可以增强物联网设备与云端进行消息通信的安全性和可靠性,因此,消息中间件相对缓存具有更高的可用性和稳定性,提高了消息推送的效率。
附图说明
38.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
39.图1为现有技术中的应用于物联网中的消息推送方式的流程示意图;
40.图2为实施例一提供的消息推送方法的一种可选的流程示意图;
41.图3为实施例一提供的消息推送方法的另一种可选的流程示意图;
42.图4为实施例三提供的消息推送系统的结构示意图;
43.图5为实施例四提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
44.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.实施例一
46.在现有技术中,当物联网设备和云端服务器基于物联网进行通信时,需要先建立物联网设备和云端的长连接服务器之间的长连接,并将物联网设备和长连接服务器的对应关系记录在长连接服务器内,以使得长连接服务器可以通过长连接与物联网设备继续进行消息通信。使用长连接无需频繁建立、断开连接,避免了性能消耗,优化了物联网设备和长连接服务器之间的通信。
47.在不涉及长连接服务器主动向物联网设备发送待推送的消息的场景时,长连接是可以自由扩容、缩容的;但时随着物联网设备的不断增加,相应的需要在云端部署多个长连接服务器以用于与多个物联网设备进行连接和通信,此时则需要使用缓存(例如:redis)来记录物联网设备和长连接服务器的对应关系。在现有技术中,云端的管理后台向物联网设备发送待推送的消息的传统的解决方案如图1所示,在物联网设备和长连接服务器通过负载均衡设备建立连接后,需要使用缓存记录物联网设备和长连接服务器的对应关系,长连接断开时删除缓存中相应的物联网设备和长连接服务器的对应关系,这样当管理后台向管理后台服务器发送待推送的消息时,需要管理后台服务器从缓存中获取与待推送的消息对应的物联网设备连接的长连接服务器,再将该待推送的消息发送至长连接服务器中,通过该长连接服务器将待推送的消息发送至物联网设备中。现有技术虽然可以实现物联网设备和云端的管理后台进行消息通信,但是现有技术还存在以下缺陷,推送消息的过程严重依赖缓存中记录的物联网设备和长连接服务器的对应关系,对缓存的稳定性和性能要求很高,当缓存出问题时,长连接服务器的推送功能完全瘫痪;当缓存从异常状态恢复后,缓存中不存在物联网设备和长连接服务器的对应关系,如果服务器需要主动向物联网设备发送消息,则需要等待缓存再次记录物联网设备和长连接服务器的对应关系后,才能继续从云端的管理后台向物联网设备推送消息,严重影响消息推送效率。
48.本发明实施例提供了一种消息推送方法,如图2所示,应用于物联网的长连接服务器中,具体包括以下步骤:
49.步骤s101:按照设定时间间隔定期从所述物联网的预设存储空间中获取待推送的消息;其中,所述待推送的消息是由所述物联网的管理后台通过管理后台服务器存储到所述预设存储空间中的。
50.其中,所述待推送的消息中包含与之相对应的目标物联网设备的身份识别信息。
51.具体的,所述预设存储空间为消息中间件,所述物联网的管理后台作为消息中间
件的生产者(producer)、所述长连接服务器作为消息中间件的消费者(consumer),物联网的管理后台生产的、由管理后台服务器转发的用于推送至目标物联网设备的待推送的消息是以key-value形式存在的,key为与待推送的消息对应的物联网设备的身份识别信息,value为待推送的消息的内容。如图3所示,当物联网的管理后台生产出待推送的消息时,需要预先由管理后台服务器将该待推送的消息转发至消息中间件中进行存储,以便长连接服务器按照预设时间从消息中间件中获取待推送的消息。
52.具体的,所述消息中间件为rocketmq、activemq、rabbitmq、kafka中的一种。优选的,所述消息中间件为kafka。
53.在本实施例中,摒弃了现有技术中使用的将物联网设备和长连接服务器的对应关系额外添加至缓存中的方式,只需将物联网设备和长连接服务器的对应关系记录在长连接服务器内,借助消息中间件来存储待推送的消息,以使得长连接服务器可以从消息中间件中获取满足推送要求的待推送的消息,并将该待推送的消息通过长连接主动发送至物联网设备。因此,云端的管理后台与物联网设备进行消息推送过程就无需依赖缓存中记录的物联网设备和长连接服务器的对应关系,从根源上解决了当缓存出问题时,长连接服务器的推送功能完全瘫痪的问题。此外,如果缓存从异常中恢复,缓存中将不存在物联网设备和长连接服务器的对应关系,如果云端的管理后台产生了需要发送至物联网设备的带推送消息时,则需要等待缓存再次记录物联网设备和长连接服务器的对应关系后,才能继续从云端的管理后台向物联网设备推送消息,而本实施例因为无需将物联网设备和长连接服务器的对应关系记录在消息中间件中,所以当使用的消息中间件出现异常时,不会对物联网设备和长连接服务器之间的对应关系造成影响,也就不会影响云端管理后台向物联网设备进行消息推送的效率。所以消息中间件相比缓存具有更高的可用性和稳定性。同时,由于消息中间件具有削峰填谷的特性,可以轻松应对瞬时大量待推送的消息的场景。当推送效率需要提高时,可以通过增加消息中间件中的消息队列的分片数、长连接服务器的个数来快速、便捷的实现推送效率的线性提升。
54.进一步的,在所述按照设定时间间隔定期从所述物联网的预设存储空间中获取待推送的消息之前,所述方法还包括:
55.步骤a1:接收由待建连物联网设备发送并通过负载均衡设备转发而来的建连请求;
56.其中,所述负载均衡设备是一种采用均衡分配算法把待建连物联网设备发送的建连请求均衡地分散到具有剩余资源的长连接服务器上的设备,负载均衡设备通过管理接收的建连请求和长连接服务器,使得建连请求尽可能快速的获得与之相连接的长连接服务器的响应,实现长连接服务器的合理化分配。
57.步骤a2:从所述建连请求中解析出所述待建连物联网设备的身份识别信息;
58.其中,所述待建连物联网设备的身份识别信息为待建连物联网设备的唯一标识。
59.步骤a3:基于解析出的身份识别信息,在所述长连接服务器和所述待建连物联网设备之间建立长连接。
60.其中,所述长连接是指在一个传输连接上可以连续发送多个待推送的消息在长连接保持期间,如果没有待推送的消息发送,则需要定期发送心跳包,以保证长连接的可用性。
61.更进一步的,在所述基于解析出的身份识别信息,在所述长连接服务器和所述待建连物联网设备之间建立长连接之后,所述方法还包括:
62.获取建立的长连接的套接字socket,将所述待建连物联网设备的身份识别信息和所述套接字socket存储到与所述长连接服务器对应的身份信息表中,并在所述身份信息表中建立所述待建连物联网设备的身份识别信息和所述套接字socket的关联关系。
63.其中,所述长连接的套接字socket是一个建立在传输协议上的用来支持建立长连接服务器与物联网设备之间双向的通信通道的套接字接口,套接字socket由待建连物联网设备的身份识别信息、传输协议(例如:tcp协议)和长连接服务器的ip地址信息构成。
64.具体的,不同的长连接服务器对应不同的身份信息表,身份信息表用于存储与长连接服务器建连的每个物联网设备的身份识别信息以及长连接服务器和物联网设备之间建立的长连接的套接字socket。
65.在本实施例中,由于通信过程中存在大量物联网设备和长连接服务器之间建立的长连接,而这些长连接需要通过同一个传输协议端口进行传输数据,为了区别不同的长连接,本实施例中为每个长连接服务器和待建连物联网设备之间建立的长连接设置了对应的套接字socket,以区分同一个长连接服务器和多个物联网设备之间建立的不同的长连接,此时,长连接服务器就可以通过套接字socket,区分消息中间件中存储的需要推送至不同物联网设备的待推送的消息,实现待推送的消息的精准推送,无需管理后台服务器从缓存中获取与待推送的消息对应的物联网设备连接的长连接服务器,简化了云端的管理后台向物联网设备推送待推送的消息的逻辑。
66.步骤s102:从所述待推送的消息中解析出目标物联网设备的身份识别信息,并判断在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息。
67.具体的,所述判断在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息,包括以下步骤:
68.判断在所述身份信息表中是否存在所述目标物联网设备的身份识别信息。
69.其中,由于在身份信息表中物联网设备的身份识别信息与长连接服务器和物联网设备之间建立的长连接的套接字socket二者关联存储,所以只需获得目标物联网设备的身份识别信息,并从身份信息表中查找与该身份识别信息具有关联关系的长连接的套接字socket,便可以获得与目标物联网设备通信的socket。
70.步骤s103:若在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中存在所述目标物联网设备的身份识别信息,则将所述待推送的消息通过长连接发送至所述目标物联网设备;若在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中不存在所述目标物联网设备的身份识别信息,则忽略所述待推送的消息。
71.在本实施例中,由于消息中间件中存储的待推送的消息中均携带相对应的目标物联网设备的身份识别信息,所以只需长连接服务器按照预定时间间隔从消息中间件中获取待推送的消息,并判断该待推送的消息携带的身份识别信息对应的目标物联网设备是否为与自身建立长连接的物联网设备,若是,则将该待推送的消息通过长连接发送至目标物联网设备。本实施例提供的消息推送方法,使得物联网的管理后台对应的管理后台服务器无需从缓存中获取与待推送的消息对应的长连接服务器,也无需获取长连接服务器和与之建
连的物联网设备的对应关系,仅需管理后台服务器将待推送的消息发送至消息中间件,优化了云端的管理后台的推送逻辑,还剥离了推送消息对缓存的依赖,提高了推送效率。
72.进一步地,所述将所述待推送的消息通过长连接发送至所述目标物联网设备,具体包括:
73.步骤b1:从所述身份信息表中获取与所述目标物联网设备的身份识别信息具有关联关系的目标套接字socket;
74.步骤b2:通过与所述目标套接字socket对应的长连接,将所述待推送的消息发送至所述目标物联网设备。
75.在本实施例中,通过使用消息中间件保存由物联网的管理后台生产的用于推送至目标物联网设备的待推送的消息,再通过长连接服务器定期从消息中间件中拉取待推送的消息,并将该待推送的消息推送至与自身建立长连接的目标物联网设备中,以实现云端的管理后台与物联网设备之间的消息通信;由于无需使用缓存记录物联网设备和长连接服务器的对应关系,摆脱了现有技术中消息推送过程对缓存的依赖,不用担心缓存出现异常,需要重新缓存物联网设备与长连接服务器的对应关系的情况,也无需在物联网设备更换与长连接服务器的对应关系时更新缓存,使消息推送的架构更加简洁;此外,在云端的管理后台给物联网设备推送消息时,无需让管理后台服务器从缓存中获取与该物联网设备对应的长连接服务器,使也无需将待推送的消息发送至长连接服务器中,简化了云端的管理后台和管理后台服务器的推送逻辑;同时,由于消息中间件具有削峰填谷的功能,因此通过消息中间件保存待推送的消息,可以轻松应对管理后台服务器瞬时发送大量待推送的消息的场景,缓解物联网设备和长连接服务器的运行压力;而且因为物联网设备和长连接服务器的对应关系保存在长连接服务器内,即使消息中间件出现了异常,也不会对物联网设备和长连接服务器的对应关系产生影响,所以使用消息中间件代替缓存,可以增强物联网设备与云端进行消息通信的安全性和可靠性,因此,消息中间件相对缓存具有更高的可用性和稳定性,提高了消息推送的效率。
76.实施例二
77.一种消息推送方法,应用于物联网中,其中,所述物联网包括:物联网设备、负载均衡设备、长连接服务器、管理后台和管理后台服务器,所述方法具体包括以下步骤:
78.步骤s1:目标物联网设备向负载均衡设备发送表征请求与长连接服务器建立长连接的建连请求。
79.其中,所述建连请求包括所述目标物联网设备的身份识别信息;优选的,所述身份识别信息为所述目标物联网设备的唯一标识。
80.步骤s2:所述负载均衡设备根据各个长连接服务器的剩余资源,确定出目标长连接服务器,并将所述建连请求转发至所述目标长连接服务器。
81.其中,所述负载均衡设备是一种采用均衡分配算法把待建连物联网设备发送的建连请求均衡地分散到具有剩余资源的长连接服务器上的设备,负载均衡设备通过管理接收的建连请求和长连接服务器,使得建连请求尽可能快速的获得与之相连接的目标长连接服务器的响应,实现长连接服务器的合理化分配。
82.步骤s3:所述目标长连接服务器从所述建连请求中解析出所述目标物联网设备的身份识别信息,并基于解析出的身份识别信息,在所述长连接服务器和所述目标物联网设
备之间建立长连接。
83.步骤s4:所述目标长连接服务器获取建立的长连接的套接字socket,将所述目标物联网设备的身份识别信息和所述套接字socket存储到与所述目标长连接服务器对应的身份信息表中,并在所述身份信息表中建立所述待建连物联网设备的身份识别信息和所述套接字socket的关联关系。
84.其中,不同的长连接服务器对应不同的身份信息表,身份信息表中物联网设备的身份识别信息与长连接服务器和物联网设备之间建立的长连接的套接字socket二者关联存储。
85.上述步骤s1-步骤s4为物联网设备与云端的长连接服务器的建连过程,此外,所述方法还包括:
86.步骤s5:所述管理后台生成发送至所述目标物联网设备的待推送的消息,并将所述待推送的消息发送至所述管理后台服务器。
87.其中,所述待推送的消息包括所述目标物联网设备的身份识别信息;优选的,所述目标物联网设备的身份识别信息为物联网设备的唯一标识。
88.步骤s6:所述管理后台服务器将所述待推送的消息转发至消息中间件。
89.步骤s7:所述目标长连接服务器按照设定时间间隔定期从所述消息中间件中获取待推送的消息。
90.步骤s8:所述目标长连接服务器从所述待推送的消息中解析出目标物联网设备的身份识别信息。
91.步骤s9:所述目标长连接服务器判断在已建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息;若是,则执行步骤s10,若否,则执行步骤s11。
92.具体的,所述步骤s9包括:
93.判断在所述身份信息表中是否存在所述目标物联网设备的身份识别信息。
94.步骤s10:将所述待推送的消息通过长连接发送至所述目标物联网设备,并重新执行步骤s7。
95.进一步的,所述步骤s10包括:
96.从所述身份信息表中获取与所述目标物联网设备的身份识别信息具有关联关系的目标套接字socket;
97.通过所述目标套接字socket,将所述待推送的消息发送至所述目标物联网设备。
98.步骤s11:丢弃所述待推送的消息,并重新执行步骤s7。
99.上述步骤s5-步骤s11为云端管理后台与物联网设备进行消息通信的过程。
100.实施例三
101.本发明的实施例三还提供了一种消息推送系统,该消息推送系统与上述实施例一提供的消息推送方法相对应。具体的,图4示出了本发明实施例三提供的消息推送系统的框图。如图4所示,该消息推送系统400可以包括物联网设备401、负载均衡设备402、长连接服务器403、管理后台404和管理后台服务器405,其中;
102.物联网设备401,用于向负载均衡设备402发送表征请求与长连接服务器403建立长连接的建连请求;
103.具体的,所述建连请求包括物联网设备401的身份识别信息。
104.进一步的,负载均衡设备402,用于根据各个长连接服务器403的剩余资源,确定出目标长连接服务器403,并将所述建连请求转发至目标长连接服务器403;
105.其中,所述负载均衡设备402是一种采用均衡分配算法把待建连物联网设备401发送的建连请求均衡地分散到具有剩余资源的长连接服务器403上的设备,负载均衡设备402通过管理接收的建连请求和长连接服务器403,使得建连请求尽可能快速的获得与之相连接的长连接服务器403的响应,实现长连接服务器403的合理化分配。
106.具体的,长连接服务器403,用于从所述建连请求中解析出待建连物联网设备401的身份识别信息,并基于解析出的身份识别信息,在长连接服务器403和待建连物联网设备401之间建立长连接;
107.其中,所述长连接是指在一个传输连接上可以连续发送多个数据待推送的消息包,然后断开长连接,在长连接保持期间,如果没有数据包待推送的消息发送,则需要定时发送心跳包,以保证长连接的可用性。
108.进一步的,管理后台404,用于生成发送至目标物联网设备401的待推送的消息,并将所述待推送的消息发送至管理后台服务器405;
109.其中,所述待推送的消息包括所述目标物联网设备401的身份识别信息;优选的,所述目标物联网设备401的身份识别信息为目标物联网设备401的唯一标识(通常使用根据设备的硬件信息生成的uuid或设备的imei)。
110.更进一步的,管理后台服务器405,用于将所述待推送的消息转发至消息中间件;
111.在本实施例中,管理后台服务器405无需从缓存中获取目标物联网设备401所对应的长连接服务器403,也无需将待推送的消息发送至长连接服务器403中,管理后台服务器405仅需将待推送的消息转发至消息中间件,简化了管理后台服务器405推送消息的逻辑,提高了推送消息的效率。
112.具体的,长连接服务器403,还用于按照设定时间间隔定期从所述消息中间件中获取待推送的消息;从所述待推送的消息中解析出目标物联网设备401的身份识别信息,并判断在与长连接服务器403建立长连接的所有物联网设备401的身份识别信息中是否存在目标物联网设备401的身份识别信息;若是,则将所述待推送的消息通过长连接发送至目标物联网设备401;若否,则丢弃所述待推送的消息。
113.在本实施例中,当管理后台服务器405将待推送的消息发送至消息中间件后,仅需长连接服务器403按照设定时间间隔定期从消息中间件中获取待推送的消息,并判断在与长连接服务器403建立长连接的所有物联网设备401的身份识别信息中是否存在目标物联网设备401的身份识别信息,摆脱了推送消息的过程对缓存的依赖,提高消息推送的效率,同时由于消息中间件具有削峰填谷的特性,缓解了物联网设备401和长连接服务器403的运行压力。
114.进一步的,长连接服务器403在执行完所述在长连接服务器403和待建连物联网设备401之间建立长连接的步骤之后,还用于:
115.获取建立的长连接的套接字socket,将待建连物联网设备401的身份识别信息和所述套接字socket存储到与所述长连接服务器对应的身份信息表中,并在所述身份信息表中建立所述待建连物联网设备的身份识别信息和所述套接字socket的关联关系。
116.其中,所述长连接的套接字socket是一个建立在传输协议上的用来支持建立长连接服务器403与物联网设备401之间双向的通信通道的套接字接口,套接字socket由待建连物联网设备401的身份识别信息、传输协议和长连接服务器403的端口ip构成。
117.更进一步的,长连接服务器403在执行所述判断在与长连接服务器403建立长连接的所有物联网设备401的身份识别信息中是否存在目标物联网设备401的身份识别信息的步骤时,具体用于:
118.判断在所述身份信息表中是否存在目标物联网设备401的身份识别信息。
119.其中,长连接服务器403在执行所述将所述待推送的消息通过长连接发送至目标物联网设备401的步骤时,具体用于:
120.从所述身份信息表中获取与目标物联网设备401的身份识别信息具有关联关系的目标套接字socket;
121.通过所述目标套接字socket,将所述待推送的消息发送至目标物联网设备401。
122.在本实施例中,由于套接字socket携带有目标物联网设备401的身份识别信息和长连接服务器403的ip地址信息,所以使得长连接服务器403可以快速准确地判断在与所述长连接服务器对应的身份信息表中是否存在目标物联网设备401的身份识别信息,以便于长连接服务器403根据套接字socket将待推送的消息发送至目标物联网设备401中,简化消息推送流程,提高消息推送的效率。
123.实施例四
124.本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图5所示,本实施例的计算机设备50至少包括但不限于:可通过系统总线相互通信连接的存储器501、处理器502。需要指出的是,图5仅示出了具有组件501-502的计算机设备50,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
125.本实施例中,存储器501(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器501可以是计算机设备50的内部存储单元,例如该计算机设备50的硬盘或内存。在另一些实施例中,存储器501也可以是计算机设备50的外部存储设备,例如该计算机设备50上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器501还可以既包括计算机设备50的内部存储单元也包括其外部存储设备。在本实施例中,存储器501通常用于存储安装于计算机设备50的操作系统和各类应用软件。此外,存储器501还可以用于暂时地存储已经输出或者将要输出的各类数据。
126.处理器502在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器502通常用于控制计算机设备50的总体操作。
127.具体的,在本实施例中,处理器502用于执行存储器501中存储的消息推送方法的程序,所述消息推送方法的程序被执行时实现如下步骤:
128.按照设定时间间隔定期从所述物联网的预设存储空间中获取待推送的消息;其中,所述待推送的消息是由所述物联网的管理后台通过管理后台服务器存储到所述预设存储空间中的;
129.从所述待推送的消息中解析出目标物联网设备的身份识别信息,并判断在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息;
130.若是,则将所述待推送的消息通过长连接发送至所述目标物联网设备;若否,则丢弃所述待推送的消息。
131.上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。
132.实施例五
133.本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
134.按照设定时间间隔定期从所述物联网的预设存储空间中获取待推送的消息;其中,所述待推送的消息是由所述物联网的管理后台通过管理后台服务器存储到所述预设存储空间中的;
135.从所述待推送的消息中解析出目标物联网设备的身份识别信息,并判断在与所述长连接服务器建立长连接的所有物联网设备的身份识别信息中是否存在所述目标物联网设备的身份识别信息;
136.若是,则将所述待推送的消息通过长连接发送至所述目标物联网设备;若否,则丢弃所述待推送的消息。
137.上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。
138.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
139.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
140.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
141.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献