一种物联网的通信方法、装置及服务器制造方法及图纸

技术编号:11535668 阅读:73 留言:0更新日期:2015-06-03 10:27
本发明专利技术公开了一种物联网的通信方法、装置及服务器,其中,该方法包括:设置多个第一选择器Selector,以从连接队列中多线程接收连接请求;根据多个第一Selector接收数据的数量,确定一个第一Selector接收当前处于连接队列最前端的连接请求;根据连接请求建立与设备侧的连接。本发明专利技术实施例设置了多个Selector,多个Selector可以从连接队列中多线程接收连接请求,进而并行处理多个连接请求,服务器的处理速度更快,解决了现有技术中,基于单线程的select和epoll模型不无法满足系统的socket的读写要求,且设备发送的包很频繁,将堵塞服务器业务线程的处理的问题。

【技术实现步骤摘要】
一种物联网的通信方法、装置及服务器
本专利技术涉及通讯领域,特别是涉及一种物联网的通信方法、装置及服务器。
技术介绍
近年来随着物联网的发展,越来越多的终端都具有网络功能,并且需要连接到服务器,用户通过服务器可以远程操作终端设备,服务器需要一套高效,稳定的通信系统来支撑设备的连接以及收发数据。目前大多通讯系统存在以下缺点:(1)随着连接的设备数增多,通讯系统的运行压力将增大,基于单线程的select和epoll模型不无法满足系统的socket的读写要求,且设备发送的包很频繁,将堵塞服务器业务线程的处理;(2)设备发送的数据包存在逻辑的顺序性,但到服务器接收后进行多线程处理,将导致无序(应该要保证数据的顺序);(3)服务器不能根据接收包的速率来自动调整服务器的运行负载;(4)服务器不能实时添加和/或删除注册网络任务;(5)有时系统经常发生死锁问题,如果死锁发生,系统将无响应并影响系统的吞吐量。
技术实现思路
本专利技术提供一种物联网的通信方法、装置及服务器,至少解决现有技术中,基于单线程的select和epoll模型不无法满足系统的socket的读写要求,且设备发送的包很频繁,将堵塞服务器业务线程的处理的问题。为解决上述技术问题,一方面,本专利技术提供一种物联网的通信方法,包括:设置多个第一选择器Selector,以从连接队列中多线程接收连接请求;根据所述多个第一Selector接收数据的数量,确定一个第一Selector接收当前处于所述连接队列最前端的连接请求;根据所述连接请求建立与设备侧的连接。进一步,根据所述连接请求建立与设备侧的连接之后,还包括:根据预设条件确定是否接收来自设备侧的发送消息;在确定接收所述发送消息的情况下,从预设的多个第二Selector中,确定一个第二Selector接收所述发送消息;将所述发送消息添加到接收队列中,以等待对所述发送消息进行处理。进一步,根据预设条件确定是否接收来自设备侧的发送消息包括:将各个第二Selector当前接收数据的数量与预设第一数量进行比较,并在所述当前接收数据的数量没有达到所述预设第一数量的情况下,确定接收所述发送消息;和/或,检测各接收队列中接收消息的数量,将所述接收消息的数量与预设第二数量进行比较,并在所述接收消息的数量没有达到预设第二数量的情况下,确定接收所述发送消息。进一步,确定一个Selector接收所述连接请求或所述发送消息包括:为所述多个Selector接收数据的数量由大到小进行排序,选择接收数据的数量最小的Selector接收当前待接收的所述连接请求或所述发送消息;在接收所述连接请求或所述发送消息后,为所述接收数据的数量最小的Selector更新接收数据的数量。进一步,在所述设置多个第一选择器Selector,以从连接队列中多线程接收连接请求之前,还包括:判断用于接收设备侧注册消息的注册队列是否为空;在所述注册队列为非空的情况下,将来自所述注册消息添加到一个第三Selector中,以实现设备侧的注册。进一步,将所述发送消息添加到接收队列中,以等待对所述发送消息进行处理之后,还包括:对所述发送消息进行处理;将处理后的发送消息添加到发送队列中,并将所述发送队列的状态标志位设置为发送状态;在所述处理后的发送消息发送完成后,将所述发送队列的状态标志位设置为空闲状态,以等待接收下一个处理后的发送消息。进一步,根据所述连接请求建立与设备侧的连接之后,还包括:判断用于取消设备侧注册消息的取消队列是否为空;在所述取消队列为非空的情况下,将所述取消队列中取消注册消息对应的设备进行删除。另一方面,本专利技术还提供了一种物联网的通信装置,包括:接收模块,用于通过预先设置的多个第一选择器Selector,从连接队列中多线程接收连接请求;第一确定模块,用于根据多个第一Selector接收数据的数量,确定一个第一Selector接收当前处于所述连接队列最前端的连接请求;连接模块,用于根据所述连接请求建立与设备侧的连接。进一步,所述装置还包括:第二确定模块,用于根据预设条件确定是否接收来自设备侧的发送消息;选择模块,用于在确定接收所述发送消息的情况下,从预设的多个第二Selector中,确定一个第二Selector接收所述发送消息;第一添加模块,用于将所述发送消息添加到接收队列中,以等待对所述发送消息进行处理。进一步,所述装置还包括:第一判断模块,用于判断用于接收设备侧注册消息的注册队列是否为空;第二添加模块,用于在所述注册队列为非空的情况下,将来自所述注册消息添加到一个第三Selector中,以实现设备侧的注册。进一步,所述装置还包括:处理模块,用于对所述发送消息进行处理;设置模块,用于将处理后的发送消息添加到发送队列中,并将所述发送队列的状态标志位设置为发送状态;并在所述处理后的发送消息发送完成后,将所述发送队列的状态标志位设置为空闲状态,以等待接收下一个处理后的发送消息。进一步,所述装置还包括:第二判断模块,用于在根据所述连接请求建立与设备侧的连接之后,判断用于取消设备侧注册消息的取消队列是否为空;删除模块,用于在所述取消队列为非空的情况下,将所述取消队列中取消注册消息对应的设备进行删除。又一方面,本专利技术还提供了一种服务器,包括:上述任一项的物联网的通信装置。本专利技术设置了多个Selector,多个Selector可以从连接队列中多线程接收连接请求,进而并行处理多个连接请求,服务器的处理速度更快,解决了现有技术中,基于单线程的select和epoll模型不无法满足系统的socket的读写要求,且设备发送的包很频繁,将堵塞服务器业务线程的处理的问题。附图说明图1是本专利技术实施例中物联网的通信方法的流程图;图2是本专利技术实施例中物联网的通信装置的第一结构示意图;图3是本专利技术实施例中物联网的通信装置的第二结构示意图;图4是本专利技术实施例中物联网的通信装置的第三结构示意图;图5是本专利技术实施例中物联网的通信装置的第四结构示意图;图6是本专利技术实施例中物联网的通信装置的第五结构示意图;图7是本专利技术优选实施例中设备具体的注册及连接接入流程图。具体实施方式为了解决现有技术中,基于单线程的select和epoll模型不无法满足系统的socket的读写要求,且设备发送的包很频繁,将堵塞服务器业务线程的处理的问题,本专利技术提供了一种物联网的通信方法、装置及服务器,以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。本专利技术实施例提供了一种物联网的通信方法,其流程如图1所示,包括步骤S102至S106:S102,设置多个第一Selector,以从连接队列中多线程接收连接请求。该过程中,建立了多个第一Selector,其用于在接收连接请求的过程中并行的多线程处理连接请求,当连接请求发来时,从连接队列中依次获得连接请求,由于设置了多个第一Selector,因此,连接队列中的连接请求可以依次进行处理。S104,根据多个第一Selector接收数据的数量,确定一个第一Selector接收当前处于连接队列最前端的连接请求。在该过程中,通常是为多个第一Selector接收数据的数量由大到小进行排序,选择接收数据的数量最小的Selector接收当本文档来自技高网...

【技术保护点】
一种物联网的通信方法,其特征在于,包括:设置多个第一选择器Selector,以从连接队列中多线程接收连接请求;根据所述多个第一Selector接收数据的数量,确定一个第一Selector接收当前处于所述连接队列最前端的连接请求;根据所述连接请求建立与设备侧的连接。

【技术特征摘要】
1.一种物联网的通信方法,其特征在于,包括:设置多个第一选择器Selector,以从连接队列中多线程接收连接请求;根据所述多个第一Selector接收数据的数量,确定一个第一Selector接收当前处于所述连接队列最前端的连接请求;根据所述连接请求建立与设备侧的连接;其中,根据所述连接请求建立与设备侧的连接之后,还包括:根据预设条件确定是否接收来自设备侧的发送消息;在确定接收所述发送消息的情况下,从预设的多个第二Selector中,确定一个第二Selector接收所述发送消息;将所述发送消息添加到接收队列中,以等待对所述发送消息进行处理。2.如权利要求1所述的通信方法,其特征在于,根据预设条件确定是否接收来自设备侧的发送消息包括:将各个第二Selector当前接收数据的数量与预设第一数量进行比较,并在所述当前接收数据的数量没有达到所述预设第一数量的情况下,确定接收所述发送消息;和/或,检测各接收队列中接收消息的数量,将所述接收消息的数量与预设第二数量进行比较,并在所述接收消息的数量没有达到预设第二数量的情况下,确定接收所述发送消息。3.如权利要求1或2所述的通信方法,其特征在于,确定一个Selector接收所述连接请求或所述发送消息包括:为所述多个Selector接收数据的数量由大到小进行排序,选择接收数据的数量最小的Selector接收当前待接收的所述连接请求或所述发送消息;在接收所述连接请求或所述发送消息后,为所述接收数据的数量最小的Selector更新接收数据的数量。4.如权利要求1或2所述的通信方法,其特征在于,在所述设置多个第一选择器Selector,以从连接队列中多线程接收连接请求之前,还包括:判断用于接收设备侧注册消息的注册队列是否为空;在所述注册队列为非空的情况下,将来自所述注册消息添加到一个第三Selector中,以实现设备侧的注册。5.如权利要求3所述的通信方法,其特征在于,将所述发送消息添加到接收队列中,以等待对所述发送消息进行处理之后,还包括:对所述发送消息进行处理;将处理后的发送消息添加到发送队列中,并将所述发送队列的状态标志位设置为发送...

【专利技术属性】
技术研发人员:张保新张诗彦王运涛
申请(专利权)人:青岛海尔智能家电科技有限公司
类型:发明
国别省市:山东;37

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

1