一种物联网通信方法及系统、网关模块与流程

文档序号:11623792阅读:440来源:国知局
一种物联网通信方法及系统、网关模块与流程

本发明涉及物联网技术领域,尤其涉及一种物联网通信方法及系统、一种网关模块。



背景技术:

物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。其英文名称是:“internetofthings(iot)”。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。

如申请号为cn201410452936.8的专利文献公开的“一种物联网通信方法以及物联网系统”,该发明公开了一种物联网通信方法和物联网系统,其中方法包括:请求步骤,用于通过测量设备向服务器发送生成动态唯一编码的请求;生成步骤,服务器响应所述请求生成动态唯一编码;上传步骤,用于通过控制终端将所述动态唯一编码上传给所述服务器;以及绑定步骤,用于由所述服务器将发送请求的测量设备与上传动态唯一编码的控制终端进行绑定,以使两者建立一对一的通信连接。

又如申请号为cn201410606747.1的专利文献公开的“物联网通信方法和装置以及物联网通信系统”,该发明提供了一种物联网通信方法和装置,该物联网通信方法包括:接收来自第一用户终端的携带有第一即时通信用户标识的第一登录请求,并据以完成对所述第一用户终端的登录授权操作;接收来自网络接入设备的携带有设备标识的第二登录请求,并据以完成对所述网络接入设备的登录授权操作;根据具有第一关联的所述第一即时通信用户标识和所述设备标识建立即时通信传输通道;通过所述即时通信传输通道对所述第一用户终端和所述网络接入设备之间传递的网络信令进行中转。

现有技术普遍存在有以下缺点:

1)物联网设备间通信效率不高;

2)终端设备负荷较重;

3)实时性容易受到影响。



技术实现要素:

物联网的终端设备资源有限,需要低功耗运用场景,而且消息的实时性和准确性尤为关键。本发明为了解决以上的问题,提出了一种基于mqtt协议和websocket协议的物联网通信方法及系统,本发明还提出一种网关模块。

本发明解决上述技术问题所采用的技术方案为:

一种物联网通信方法,包括步骤:

s1.接收并转发终端设备发送的注册请求消息至通信适配模块,所述通信适配模块将所述注册请求消息存储至数据库内,并返回注册响应;

s2.接收并转发终端设备发送的订阅请求消息至通信适配模块,所述通信适配模块将所述订阅请求消息存储至数据库内,并返回订阅响应;

s3.接收终端设备发送的发布消息,获取订阅所述终端设备消息发布服务的其他终端设备信息,将所述发布消息转发至订阅所述终端设备消息发布服务的其他终端设备。

进一步地,步骤s1具体为:

s11.终端设备发送注册请求消息至网关模块;所述注册请求消息包括:终端设备对应的设备唯一标识、通信协议、设备类型、设备名称、设备角色及时间戳;

s12.网关模块将所述注册请求消息转发至通信适配模块;

s13.通信适配模块将所述注册请求消息存储至数据库内,并创建注册信息表;

s14.通信适配模块通过网关模块向终端设备返回是否注册成功的消息。

进一步地,步骤s2具体为:

s21.终端设备发送订阅请求消息至网关模块;所述订阅请求消息包括:终端设备对应的设备唯一标识、订阅对象设备对应的设备唯一标识、接收数据类型、接收数据格式及时间戳;

s22.网关模块的协议转换模块将所述订阅请求消息从mqtt协议类型转换至websocket协议类型;

s23.网关模块将所述订阅请求消息发送至通信适配模块,通信适配模块将接收的订阅请求消息存储至数据库内,并创建一用于区别不同设备之间的发布订阅关系的唯一标识;

s24.通信适配模块通过网关模块向终端设备返回是否订阅成功的消息。

进一步地,步骤s3具体为:

s31.终端设备发送发布消息至网关模块;所述发布消息包括:终端设备对应的设备唯一标识、发布消息的数据类型、发布消息的数据格式、设备类型及时间戳;

s32.网关模块的协议转换模块将所述发布消息从mqtt协议类型转换至websocket协议类型;

s33.网关模块将所述发布消息发送至通信适配模块;

s34.通信适配模块接收并解析所述发布消息,并从数据库内获取订阅了所述终端设备消息发布服务的其他终端设备信息;

通信适配模块发送所述发布消息及所述其他终端设备信息至网关模块;

s35.网关模块的协议转换模块将所述发布消息从websocket协议类型转换至mqtt协议类型;

s36.网关模块的协议转换模块将所述发布消息转发至订阅了所述终端设备消息发布服务的其他终端设备。

一种网关模块,包括:

注册请求处理单元,用于接收并转发终端设备发送的注册请求消息至通信适配模块,还用于接收及转发注册响应;

订阅请求处理单元,用于接收并转发终端设备发送的订阅请求消息至通信适配模块,还用于接收及转发订阅响应;

发布消息处理单元,用于接收终端设备发送的发布消息,获取订阅所述终端设备消息发布服务的其他终端设备信息,将所述发布消息转发至订阅所述终端设备消息发布服务的其他终端设备。

一种物联网通信系统,包括:

终端设备,用于向网络模块发送注册请求消息、订阅请求消息及发布消息;

事件流处理模块,用于与网关模块进行通信以及管理终端设备之间的通信;

网关模块,用于与终端设备及事件流处理模块进行通信。

进一步地,所述终端设备包括:

网络连接单元,用于建立与网关模块的网络连接。

进一步地,所述事件流处理模块包括:

通信适配单元,用于与网关模块进行通信管理,还用于管理终端设备间的通信;

数据库,用于存储不同终端设备之间的通信模型;

第一websocket输入/输出端口,用于与网关模块建立基于websocket协议的通信连接。

进一步地,所述网关模块包括:

注册请求处理单元,用于接收并转发终端设备发送的注册请求消息至通信适配模块,还用于接收及转发注册响应;

订阅请求处理单元,用于接收并转发终端设备发送的订阅请求消息至通信适配模块,还用于接收及转发订阅响应;

发布消息处理单元,用于接收终端设备发送的发布消息,获取订阅所述终端设备消息发布服务的其他终端设备信息,将所述发布消息转发至订阅所述终端设备消息发布服务的其他终端设备。

进一步地,所述网关模块还包括:

mqtt单元,用于维持终端设备与网关模块之间的通信连接;

协议转换单元,用于将消息从mqtt协议类型转换至websocket协议类型,或者,用于将消息从websocket协议类型转换至mqtt协议类型;

第二websocket输入/输出端口,用于与事件流处理模块建立基于websocket协议的通信连接。

本发明提出一种可以结合mqtt协议和websocket协议的物联网通信架构,优点在于:

1)qtt协议的消息格式极其简单,最短只有两个字节,可以实现高效消息通信,减小设备端和服务端负荷。

2)websocket协议可以维护客户端和服务端之间的双向通信,进而可以确保消息的实时性。

附图说明

图1为本发明实施例一中一种物联网通信方法流程图;

图2为本发明实施例一中一种网关模块结构图;

图3为本发明实施例一中一种物联网通信系统结构图;

图4为本发明实施例二中设备注册流程图;

图5为本发明实施例三中设备订阅流程图;

图6为本发明实施例四中设备消息发布流程图。

具体实施方式

以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

物联网的终端设备资源有限,需要低功耗运用场景,而且消息的实时性和准确性尤为关键。本发明为了解决以上的问题,提出了一种基于mqtt协议和websocket协议的物联网通信架构:

mqtt协议的消息格式极其简单,最短只有两个字节,可以实现高效消息通信,减小设备端和服务端负荷;

websocket协议可以维护客户端和服务端之间的双向通信,进而可以确保消息的实时性。

通常情况下,设备的通信协议都是由设备制造商决定的,在这种情况下,不同的设备间通信需要提前知道该设备的通信协议,本发明还可以支持不同设备间通信。

以下为本发明具体实施例。

实施例一

如图1所示为本实施例中一种物联网通信方法流程图,该方法包括步骤:

s1.接收并转发终端设备发送的注册请求消息至通信适配模块,所述通信适配模块将所述注册请求消息存储至数据库内,并返回注册响应;

在一个设备可以与其他设备通信之前,该设备必须先注册。

本步骤中,设备首先发出注册请求到网关模块,该注册请求消息包括一个设备唯一标识,一种通信协议,设备类型,设备名字,设备角色和时间戳等等。之后网关模块会把该请求转发给通信适配模块,通信适配模块会将该信息存储到数据库并维护一个注册信息表,该表包括所有可用的设备和设备相关信息。通信适配模块最后会通过网关模块返回给设备是否注册成功的消息。

s2.接收并转发终端设备发送的订阅请求消息至通信适配模块,所述通信适配模块将所述订阅请求消息存储至数据库内,并返回订阅响应;

本步骤中,设备发出订阅请求消息到网关模块,该订阅请求消息包括一个设备唯一标识,发布设备的标识,接收的数据类型,数据格式,时间戳等等。网关模块中的协议转换模块会把收到的订阅请求从mqtt协议转换为websocket协议,然后通过网关模块的websocket输出端口转发该消息到通信适配模块的websocket输出端口,之间的通信可以通过ssl/https进行加密,通信适配模块在收到消息之后会在数据库中存储该信息,并创建一个唯一标识来区别不同设备间的发布订阅关系。通信适配模块最后会通过网关模块返回给设备是否订阅成功的消息。

mqtt(messagequeuingtelemetrytransport,消息队列遥测传输)是ibm开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过twitter让房屋联网)的通信协议。

websocket协议是html5一种新的协议。它实现了基于tcp的浏览器与服务器全双工通信,该协议由ietf制定为标准协议rfc6455,而且websocketapi也已经被w3c组织标准化。这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新。它有着广泛的应用场景,比如在线聊天室、在线客服系统、评论系统、webim等。

s3.接收终端设备发送的发布消息,获取订阅所述终端设备消息发布服务的其他终端设备信息,将所述发布消息转发至订阅所述终端设备消息发布服务的其他终端设备。

本步骤中,设备发出发布消息到网关模块,该发布消息包括一个设备唯一标识,消息的数据类型,消息的数据格式,设备类型,时间戳等等。网关模块中的协议转换模块会把收到的发布消息请求从mqtt协议转换为websocket协议,然后通过网关的websocket输出端口转发该消息到通信适配模块的websocket输出端口,之间的通信可以通过ssl/https进行加密,通信适配模块会解析该发布消息,并从数据库中读取对应该设备的订阅设备,之后通过该模块的websocket输入端口转发该消息到网关模块的输入端口,网关模块会转发给mqtt的协议转换模块,再由协议转换模块将websocket消息转为mqtt消息,最后由其转发给订阅了该服务的所有设备。

如图2所示为本实施例中一种网关模块结构图,该模块包括:

注册请求处理单元310,用于接收并转发终端设备发送的注册请求消息至通信适配模块,还用于接收及转发注册响应;

订阅请求处理单元320,用于接收并转发终端设备发送的订阅请求消息至通信适配模块,还用于接收及转发订阅响应;

发布消息处理单元330,用于接收终端设备发送的发布消息,获取订阅所述终端设备消息发布服务的其他终端设备信息,将所述发布消息转发至订阅所述终端设备消息发布服务的其他终端设备。

如图3所示为本实施例中一种物联网通信系统结构图,该系统包括:

终端设备100,用于向网络模块发送注册请求消息、订阅请求消息及发布消息;

事件流处理模块200,用于与网关模块进行通信以及管理终端设备之间的通信;

网关模块300,用于与终端设备及事件流处理模块进行通信。

所述终端设备100包括:

网络连接单元110,用于建立与网关模块的网络连接。

所述事件流处理模块200包括:

通信适配单元210,用于与网关模块进行通信管理,还用于管理终端设备间的通信;

数据库220,用于存储不同终端设备之间的通信模型;

第一websocket输入/输出端口230,用于与网关模块建立基于websocket协议的通信连接。

所述网关模块300包括:

注册请求处理单元310,用于接收并转发终端设备发送的注册请求消息至通信适配模块,还用于接收及转发注册响应;

订阅请求处理单元320,用于接收并转发终端设备发送的订阅请求消息至通信适配模块,还用于接收及转发订阅响应;

发布消息处理单元330,用于接收终端设备发送的发布消息,获取订阅所述终端设备消息发布服务的其他终端设备信息,将所述发布消息转发至订阅所述终端设备消息发布服务的其他终端设备。

mqtt单元340,用于维持终端设备与网关模块之间的通信连接;

协议转换单元350,用于将消息从mqtt协议类型转换至websocket协议类型,或者,用于将消息从websocket协议类型转换至mqtt协议类型;

第二websocket输入/输出端口360,用于与事件流处理模块建立基于websocket协议的通信连接。

本实施例中,物联网通信系统主要包括三个核心部分,终端设备100,网关模块300,事件流处理模块200。

终端设备100可以是微处理器,手机,平板,智能穿戴或智能家电等,并且终端设备100需要和网关模块300之间建立了网络连接。每个设备可以配置一个网络地址例如统一资源标示符(uri)用于维持与网关模块300之间的会话。

网关模块300包含一个mqtt单元340用于维护终端设备100和网关模块300之间的会话。

网关模块300还包含一个协议转换单元350,该模块可以把mqtt消息转换为websocket消息。网关模块300还包括第二websocket输入/输出端口360,用于和事件流处理模块200建立基于websocket协议的通信连接。

事件流处理模块200基于事件驱动架构并具备与其他业务互联的扩展功能,该模块用到的技术包括但不限于事件可视化,事件数据库,事件驱动中间件,事件处理语言,复杂事件处理等等。

事件流处理模块200有一个通信适配单元210,功能为与网关模块进行基于websocket协议的通信并管理设备间通信;

事件流处理模块200还包括第一websocket输入/输出端口230,用于与网关模块建立基于websocket协议的通信连接。

事件流处理模块200还包括一个数据库220,用于记录不同设备间的通信模型。

例如,如果数据库中记录a设备可以通过通信适配模块发布消息,并且b设备订阅了该a设备的发布服务,那么当设备a发布消息时,设备b就会通过通信适配模块收到a发布的消息。

本实施例提出一种可以结合mqtt协议和websocket协议的物联网通信架构,优点在于:

(1)mqtt协议的消息格式极其简单,最短只有两个字节,可以实现高效消息通信,减小设备端和服务端负荷。

(2)websocket协议可以维护客户端和服务端之间的双向通信,进而可以确保消息的实时性。

实施例二

本实施例为设备注册流程的具体解释。

参考图1,步骤s1即为设备注册流程。

如图4所示为本实施例中设备注册流程图,该步骤具体为:

s11.终端设备发送注册请求消息至网关模块;所述注册请求消息包括:终端设备对应的设备唯一标识、通信协议、设备类型、设备名称、设备角色及时间戳;

s12.网关模块将所述注册请求消息转发至通信适配模块;

s13.通信适配模块将所述注册请求消息存储至数据库内,并创建注册信息表;

s14.通信适配模块通过网关模块向终端设备返回是否注册成功的消息。

实施例三

本实施例为设备订阅流程的具体解释。

参考图1,步骤s2即为设备订阅流程。

如图5所示为本实施例中设备订阅流程图,该步骤具体为:

s21.终端设备发送订阅请求消息至网关模块;所述订阅请求消息包括:终端设备对应的设备唯一标识、订阅对象设备对应的设备唯一标识、接收数据类型、接收数据格式及时间戳;

s22.网关模块的协议转换模块将所述订阅请求消息从mqtt协议类型转换至websocket协议类型;

s23.网关模块将所述订阅请求消息发送至通信适配模块,通信适配模块将接收的订阅请求消息存储至数据库内,并创建一用于区别不同设备之间的发布订阅关系的唯一标识;

s24.通信适配模块通过网关模块向终端设备返回是否订阅成功的消息。

实施例四

本实施例为设备消息发布流程的具体解释。

参考图1,步骤s3即为设备消息发布流程。

如图6所示为本实施例中设备消息发布流程图,该步骤具体为:

s31.终端设备发送发布消息至网关模块;所述发布消息包括:终端设备对应的设备唯一标识、发布消息的数据类型、发布消息的数据格式、设备类型及时间戳;

s32.网关模块的协议转换模块将所述发布消息从mqtt协议类型转换至websocket协议类型;

s33.网关模块将所述发布消息发送至通信适配模块;

s34.通信适配模块接收并解析所述发布消息,并从数据库内获取订阅了所述终端设备消息发布服务的其他终端设备信息;

通信适配模块发送所述发布消息及所述其他终端设备信息至网关模块;

s35.网关模块的协议转换模块将所述发布消息从websocket协议类型转换至mqtt协议类型;

s36.网关模块的协议转换模块将所述发布消息转发至订阅了所述终端设备消息发布服务的其他终端设备。

实施例五

本实施例中,网关模块和事件流处理模块之间的通信可以通过ssl/https进行加密,利用websocket协议的特性,网关模块和事件流处理模块之间可以保持连接,达到了消息实时性的目的,而代价只是2到3个字节的ping数据包。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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