CN108616606B - 一种物联网通信方法及装置 - Google Patents
一种物联网通信方法及装置 Download PDFInfo
- Publication number
- CN108616606B CN108616606B CN201810859943.8A CN201810859943A CN108616606B CN 108616606 B CN108616606 B CN 108616606B CN 201810859943 A CN201810859943 A CN 201810859943A CN 108616606 B CN108616606 B CN 108616606B
- Authority
- CN
- China
- Prior art keywords
- information
- user
- user terminal
- client
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种物联网通信方法及装置,用于解决现有技术中网页客户端、服务器和网关客户端之间的信息传输实时性很差的问题。所述物联网通信方法包括:服务器接收网关客户端发送的响应信息,所述网关客户端是连接传感器网络与互联网网络的客户端,所述响应信息包括用于标识用户终端的第一标识信息;所述服务器根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端。
Description
技术领域
本申请涉及物联网服务器通信的技术领域,涉及一种物联网通信方法及装置。
背景技术
目前行业内物联网服务器采用基于传统输入输出(IO,InputOutput)的传输控制协议(TCP,Transmission Control Protocol)通信和异步JavaScript和XML(Ajax,Asynchronous Javascript And XML)轮询推送信息的方式,Ajax每次连接都要重新建立超文本传输协议(HyperText Transfer Protocol,HTTP)连接对比较浪费带宽,且传输信息不实时。传统IO的TCP通信且对每个物联网网关客户端的连接都要创建一个线程,当并发数量非常巨大时,线程所占的栈内存和云服务器线程切换的开销非常巨大,消耗了大量系统资源,导致系统响应时间随着连接数量的增加而大大增长,从而导致物联网服务器性能不足。因此,现有技术中存在着网页客户端、服务器和网关客户端之间的信息传输实时性很差的问题。
发明内容
有鉴于此,本申请提供一种物联网通信方法及装置,用于解决现有技术中网页客户端、服务器和网关客户端之间的信息传输实时性很差的问题。
本申请提供了的一种物联网通信方法,包括:服务器接收网关客户端发送的响应信息,所述网关客户端是连接传感器网络与互联网网络的客户端,所述响应信息包括用于标识用户终端的第一标识信息;所述服务器根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端。
可选地,在本申请实施例中,在所述服务器接收网关客户端发送的响应信息,所述网关客户端是指通过传感器网络和互联网网络连接的物联网网关客户端之前,还包括:接收所述用户终端发送的控制指令,所述控制指令包括所述第一标识信息和用于标识所述网关客户端的第二标识信息;根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限;若否,则将获取权限失败信息根据所述第一标识信息发送给所述用户终端。
可选地,在本申请实施例中,在所述根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限之后,还包括:若所述用户终端有获取所述网关客户端的权限,则根据所述第二标识信息将所述控制指令发送给对应的所述网关客户端。
可选地,在本申请实施例中,在所述接收所述用户终端发送的控制指令,所述控制指令包括所述网关客户端的标识信息之前,还包括:接收所述用户终端发送的认证信息,所述认证信息包括用户名和密码;判断所述用户终端发送的认证信息是否已经存储在所述服务器上;若是,则将认证成功信息发送给所述用户终端。
可选地,在本申请实施例中,在所述判断所述用户终端发送的认证信息是否已经存储在所述服务器上之后,还包括:若所述用户终端发送的认证信息未存储在所述服务器上,则将认证失败信息发送给所述用户终端。
本申请还提供了一种物联网通信装置,所述物联网通信装置包括:响应信息接收模块,用于服务器接收网关客户端发送的响应信息,所述网关客户端是连接传感器网络与互联网网络的客户端,所述响应信息包括用于标识用户终端的第一标识信息;响应信息发送模块,用于根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端。
可选地,在本申请实施例中,还包括:控制指令接收模块,用于接收所述用户终端发送的控制指令,所述控制指令包括所述第一标识信息和用于标识所述网关客户端的第二标识信息;获取权限判断模块,用于根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限;权限失败信息发送模块,用于若所述用户终端没有获取所述网关客户端的权限,将获取权限失败信息根据所述第一标识信息发送给所述用户终端。
可选地,在本申请实施例中,还包括:控制指令发送模块,用于若所述用户终端有获取所述网关客户端的权限,则根据所述第二标识信息将所述控制指令发送给对应的所述网关客户端。
可选地,在本申请实施例中,还包括:认证信息接收模块,用于接收所述用户终端发送的认证信息,所述认证信息包括用户名和密码;认证信息判断模块,用于判断所述用户终端发送的认证信息是否已经存储在所述服务器上;认证成功信息发送模块,用于若所述用户终端发送的认证信息存储在所述服务器上,则将认证成功信息发送给所述用户终端。
可选地,在本申请实施例中,还包括:认证失败信息发送模块,用于若所述用户终端发送的认证信息未存储在所述服务器上,则将认证失败信息发送给所述用户终端。
本申请提供一种物联网通信方法及装置,当服务器接收网关客户端发送的响应信息时,便立即根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端;当然服务器接收网关客户端发送的更新的响应信息时,便立即根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端。通过这种方式从而有效地解决了现有技术中网页客户端、服务器和网关客户端之间的信息传输实时性很差的问题。
为使本申请的上述目的和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚的说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的物联网通信方法流程示意图;
图2是本申请实施例提供的物联网通信方法步骤S100之前流程示意图;
图3是本申请实施例提供的物联网通信方法步骤S100之前完整的流程示意图;
图4是本申请实施例提供的物联网web服务器通信平台结构框图;
图5是本申请实施例提供的Netty工作流程图;
图6是本申请实施例提供的channelRead函数的程序流程图;
图7是本申请实施例提供的物联网web服务器Websocket工作流程图;
图8是本申请实施例提供的物联网通信装置第一视角结构示意图;
图9是本申请实施例提供的物联网通信装置第二视角结构示意图。
图标:101-物联网通信装置;100-响应信息接收模块;200-响应信息发送模块;10-认证信息接收模块;20-认证信息判断模块;30-认证成功信息发送模块;40-认证失败信息发送模块;50-控制指令接收模块;60-获取权限判断模块;70-权限失败信息发送模块;80-控制指令发送模块;。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“上”、“下”、
“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。
在本申请的描述中,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
为了便于理解,下面先介绍本申请实施例涉及的一些缩写和概念:
超文本传输协议(HyperText Transfer Protocol,HTTP),是互联网上应用最为广泛的一种网络协议。
全球广域网(World Wide Web,WEB,亦作“Web”、“WWW”、“W3”),也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。
浏览器/服务器模式(Browser/Server,B/S),又经常被简写为BS,是WEB兴起后的一种网络结构模式,WEB浏览器是用户终端最主要的应用软件。这种模式统一了用户终端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
超文本标记语言(HyperText Markup Language,HTML),是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。
用户终端脚本语言:JavaScript,是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于用户终端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。
可扩展标记语言(eXtensible Markup Language,XML)标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
异步JavaScript和XML(Asynchronous Javascript And XML,Ajax),是指一种创建交互式网页应用的网页开发技术,是一种用于创建快速动态网页的技术,一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
网络输入输出(NIO,Network Input/Output),分为网络IO设备和网络IO接口两个部分。
Netty是一个NIO客户端/服务器框架,具有大吞吐量,低延迟和低消耗的优点,能够有效解决多线程服务器存在的线程开销问题,使得TCP服务器和客户端的开发性能更加优秀,便捷和可靠。基于Netty网络通信框架搭建的物联网web服务器,可借助Netty的高性能、基于事件驱动、一步非堵塞等性能,帮助开发者快速构建高性能的网络通信程序。由于物联网客户端连接的数量大,Netty单线程和多线程模型性能有限,不能处理成百上千的事件,当负荷达到一定程度时,性能会下降,某一事件处理器发送故障时,不能继续处理其他事件。所以本申请设计的物联网web服务器Netty框架采用主从多线程模型。
Websocket协议是一种基于一个TCP长连接,可实现全双工通信的新一代客户端与服务端的通信协议。客户端能向服务器端发送请求数据,同时服务器也可以主动推送请求数据。Websocket只进行一次http协议握手,数据就能直接从TCP通道传输。在传统的web中,要实现实时通信,通用的方式是采用http协议不断发送请求,但这样的方式浪费带宽,又消耗服务器CPU占用,从而降低物联网web服务器的性能。
随着互联网的发展,在家居,医疗,交通等方面物联网大规模应用,越来越多的物联网网关连接到云端,用户通过物联网web服务器与物联网网关交互。传统的物联网web服务器采用基于传统的TCP通信和Ajax轮询推送信息的方式,Ajax每次连接都要重新建立HTTP连接对比较浪费带宽,传统的TCP通信且对每个物联网网关客户端的连接都要创建一个线程,当并发数量非常巨大时,线程所占的栈内存和CPU线程切换的开销非常巨大,消耗了大量系统资源,导致系统响应时间随着连接数量的增加而大大增长,从而导致物联网web服务器性能不足。
第一实施例
请参见图1,图1是本申请实施例提供的物联网通信方法流程示意图。本申请提供了的一种物联网通信方法,包括:
步骤S100:服务器接收网关客户端发送的响应信息,所述网关客户端是连接传感器网络与互联网网络的客户端,所述响应信息包括用于标识用户终端的第一标识信息;
其中,需要说明地是,服务器接收网关客户端发送的响应信息,所述网关客户端是连接传感器网络与互联网网络的客户端,所述响应信息包括用于标识用户终端的第一标识信息;
步骤S200:所述服务器根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端。
其中,需要说明地是,所述服务器根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端。
请参见图2,图2是本申请实施例提供的物联网通信方法步骤S100之前流程示意图。可选地,在本申请实施例中,在所述服务器接收网关客户端发送的响应信息,所述网关客户端是指通过传感器网络和互联网网络连接的物联网网关客户端之前,还包括:
步骤S50:接收所述用户终端发送的控制指令,所述控制指令包括所述第一标识信息和用于标识所述网关客户端的第二标识信息;
其中,需要说明地是,服务器接收所述用户终端发送的控制指令,所述控制指令包括所述第一标识信息和用于标识所述网关客户端的第二标识信息;
步骤S60:根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限;
其中,需要说明地是,服务器根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限;
步骤S70:若否,则将获取权限失败信息根据所述第一标识信息发送给所述用户终端。
其中,需要说明地是,若所述用户终端没有获取所述网关客户端的权限,则将获取权限失败信息根据所述第一标识信息发送给所述用户终端。
请参见图2,可选地,在本申请实施例中,在所述根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限之后,还包括:
步骤S80:若所述用户终端有获取所述网关客户端的权限,则根据所述第二标识信息将所述控制指令发送给对应的所述网关客户端。
其中,需要说明地是,在所述根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限之后,还包括:若所述用户终端有获取所述网关客户端的权限,则根据所述第二标识信息将所述控制指令发送给对应的所述网关客户端。
请参见图3,图3是本申请实施例提供的物联网通信方法步骤S100之前完整的流程示意图。可选地,在本申请实施例中,在所述接收所述用户终端发送的控制指令,所述控制指令包括所述网关客户端的标识信息之前,还包括:
步骤S10:接收所述用户终端发送的认证信息,所述认证信息包括用户名和密码;
其中,需要说明地是,服务器接收所述用户终端发送的认证信息,所述认证信息包括用户名和密码;
步骤S20:判断所述用户终端发送的认证信息是否已经存储在所述服务器上;
其中,需要说明地是,服务器判断所述用户终端发送的认证信息是否已经存储在所述服务器上;
步骤S30:若是,则将认证成功信息发送给所述用户终端。
其中,需要说明地是,若所述用户终端发送的认证信息已经存储在所述服务器上,则将认证成功信息发送给所述用户终端。
请参见图3,可选地,在本申请实施例中,在所述判断所述用户终端发送的认证信息是否已经存储在所述服务器上之后,还包括:
步骤S40:若所述用户终端发送的认证信息未存储在所述服务器上,则将认证失败信息发送给所述用户终端。
其中,需要说明地是,在所述判断所述用户终端发送的认证信息是否已经存储在所述服务器上之后,还包括:若所述用户终端发送的认证信息未存储在所述服务器上,则将认证失败信息发送给所述用户终端。
为了便于理解,下面介绍本申请实施例提供的物联网通信方法的另一种实施方式,具体的实施方式如下:
针对上述物联网web服务器通信平台存在的问题,本申请提供了一种基于Netty与websocket的物联网web服务器通信平台设计。本申请采用SSM框架搭建物联网web服务器,借助Netty框架的高性能、基于事件驱动、异步非堵塞等性能,实现物联网网关与物联网Web服务器高性能通信。物联网Web服务器与网页客户端采用长连接的Websocket协议通信,实现网页客户端对物联网传感器网络的信息读取和设备控制。本申请基于Netty与websocket的物联网web服务器通信平台包括:SSM框架,mysql数据库,Netty框架,websocket协议,物联网网关客户端,网页客户端,UserInform类定义。
本申请中的SSM框架由Spring、SpringMVC、MyBatis三大框架整合而成,搭建物联网web服务器。
本申请中客户端包括:物联网网关客户端和网页客户端。其中,物理网网关连接传感器网络与互联网网络通过tcp协议与物联网web服务器相连。网页客户端是用户在电脑网页或手机APP登录客户端。
本申请中的物联网web服务器采用的数据库是mysql数据库,表User_Index、表User_Inform、表User_Order。表User_Index保存网页客户端用户登录信息User_ID和sessionID。表User_Inform保存物联网网关User_ID和传输过来的信息。表User_Order保存User_ID和网页客户端命令信息。
本申请中采用Netty框架实现物联网网关与物联网web服务器高质量稳定通信。Netty提供boss线程池,work线程池。boss线程池监听物联网网关客户端。work线程池中提供channelhander处理类。
本申请中work线程池中ChannelHandler采用了的多种类方法,如:ProtobufVarint32FrameDecoder类,ProtobufVarint32类,engthFieldepender类,ProtobufDecoder类,ProtobufEncoder类、NettyServerHandler类。其中,类ProtobufVarint32FrameDecoder用于解码前解决半包和粘包问题。类ProtobufDecoder解码将指定的网关客户端传输到web服务器的UserInform字节数字组转化为UserInform类。类ProtobufVarint32engthFieldepender用于编码的字节数组前加上一个简单包头指明编码的字节长度支持解码时半包和粘包处理。类ProtobufEncoder用于对将从Web服务器传出到网关客户端命令信息User_Order_protobuf类编码。类NettyServerHandler用于解码数据的逻辑处理。
本申请中物联网网关客户端与物联网web服务器传输的UserInform类数据结构由Identifiers、User_ID、Sensor_type、Sensor_ID、Sensor_value这5个元素构成。
本申请中的websocket协议包含websocket服务端和websocket客户端。websocket服务端存在注解函数@onopen、@onClose、@onMessage。@onopen注解函数中用户Session_ID会保存在表User_index中。@onClose注解函数中将表User_index中对应序列中的Session_ID清零,以清除离线用户Session_ID信息。@onMessage注解函数,在会话过程中将网页客户端的命令信息存入表User_Order对应序列中。websocket客户端存在的操作有用户登录,信息查询,远程控制。
下面结合附图以及具体实施方式对本申请近一步详细说明:
请参见图4,图4是本申请实施例提供的物联网web服务器通信平台结构框图。本申请采用SSM框架搭建物联网web服务器,借助Netty框架的高性能、基于事件驱动、异步非堵塞等性能,实现物联网网关与物联网Web服务器高性能通信。物联网Web服务器与网页客户端采用长连接的Websocket协议通信,实现网页客户端对物联网传感器网络的信息读取和设备控制。在搭建的物联网web服务器的SSM框架中采用Netty框架和Websock协议。物联网web服务器对物联网网关客户端进行IP端口监听与数据处理,通过Netty框架实现物联网Web服务器与大数量物联网网关客户端的高质量稳定通信,并将接收到的数据存储在物联网web服务器数据库中进行数据持久化。网页客户端打开网页与web服务器建立Websocket连接,物联网web服务器上的Netty服务端通过网页客户端SessionID和Websocket协议实现物联网网关采集的信息直接推送到物联网网页客户端和网页客户端控制命令对物联网网关客户端的发送,实现网页客户端与物联网网关客户端间的信息交互。
请参见图5,图5是本申请实施例提供的Netty工作流程图。物联网网关客户端通过Tcp连接到物联网Web服务器,在web服务器上搭建Netty服务端,boss线程池监听到物联网网关客户端端口连接后,就将一个socketchannel通道绑定到work线程池,然后物联网网关客户端发送信息到work线程池,经过work线程池中channelhander类处理,物联网网关客户端发送的数据包含有User_ID,以User_ID为关键字查询表User_Index中对应的sessionID,通过sessionID确定对应的网页客户端,并推送来自物联网网关客户端信息并将数据存储到数据库中进行持久化处理,同时从web服务器数据库中通过User_ID查询表User_Order中对应的命令信息,读取并发送回物联网网关客户端。
本申请中网关客户端与物联网web服务器传输的UserInform类结构定义如下表所示:
本申请中物联网Web服务器将传输过来的信息经过Netty给开发者提供的可定制和扩展的关键接口channelHandler处理,包含类ProtobufVarint32FrameDecoder,类ProtobufDecoder,类ProtobufVarint32LengthFieldPrepender,类ProtobufEncoder,类NettyServerHandler。
本申请中物联网网关发送过来的数据包通过类ProtobufVarint32FrameDecoder用于解码前解决半包和粘包,拆包后的数据包经ProtobufDecoder类解码将指定的网关客户端传输到web服务器的UserInform字节数字组转化为UserInform类。数据结构由标识符、用户ID、传感器类型、传感器ID、传感器数值这5个元素构成。当物联网web服务器接收到数据后,可立即根据用户ID将传感器类型、传感器ID、传感器数值数值保存到表User_inform目标用户的序列中。
请参见图6,图6是本申请实施例提供的channelRead函数的程序流程图。本申请中接收到的数据流经过解码成实体类UserInform后。实体类UserInform经过NettyServerHandler类处理实现解码数据的逻辑处理。类NettyServerHandler中的逻辑处理主要是在其内部的channelRead函数进行实现的。物联网网关发送给web服务器的信息通过解码器解码过后会将信息存储在一个实体类UserInform中,以UserInform.User_ID为关键字查询用户登录表User_index中对应登录的Websocket网页客户端的sessionID,表User_index中包含三个元素,User_name、User_ID、Session_ID。查询表User_index中的元素User_ID如果用户登录了则查询到对应的session_ID值,通过Session.getBasic().sendText()函数发送信息给对应的网页客户端实现网关客户端信息向对应网页客户端的推送,如果没有,则直接将实体类request持久化通过User_ID存储到表User_Inform目标用户的序列中。channelRead函数再通过User_ID查询并读取表User_Order目标用户序列中的命令内容,通过ctx.channel().writeAndFlush()函数将内容发送到目标用户网关客户端实现命令的发布。存储命令发布信息的UserOrder类经过类ProtobufEncoder将从物联网Web服务器传出到网关客户端命令信息的UserOrder类编码形成字节数组。经过序列化的字节数组经过类ProtobufVarint32engthFieldepender在字节数组前加上一个简单的包头指明编码的字节长度添加编码以支持网页客户端的拆包。
请参见图7,图7是本申请实施例提供的物联网web服务器Websocket工作流程图。其中,网关客户端与网页客户端之间的交互过程如下:
网关客户端与服务器通过netty框架建立tcp连接,当网页客户端登录后与服务器建立websocket连接。服务器通信平台要为大量的用户提供服务,通过对用户登录的User_ID和浏览器sessionID在数据库中保存,并在数据库中创建了对应的3个表,实现数据的隔离访问数据与数据库间的操作。网关客户端发送的信息通过netty框架与websocket协议和对数据库的操作实现网关客户端与网页客户端之间信息的实时传输。
网页客户端用户登录,通过验证完成websocket握手,将sessionID通过关键字User_ID存入表User_index对应序列中。物联网web服务器Netty服务端会通过以sessionID和User_ID将信息推送到对应的websocket客户端。Websocket客户端发送的命令信息会存储到表User_Order中持久化而能被Netty服务读取。
第二实施例
请参见图8,图8是本申请实施例提供的物联网通信装置第一视角结构示意图。本申请还提供了一种物联网通信装置101,所述物联网通信装置101包括:
响应信息接收模块100,用于服务器接收网关客户端发送的响应信息,所述网关客户端是连接传感器网络与互联网网络的客户端,所述响应信息包括用于标识用户终端的第一标识信息;
响应信息发送模块200,用于根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端。
请参见图9,图9是本申请实施例提供的物联网通信装置第二视角结构示意图。可选地,在本申请实施例中,还包括:
控制指令接收模块50,用于接收所述用户终端发送的控制指令,所述控制指令包括所述第一标识信息和用于标识所述网关客户端的第二标识信息;
获取权限判断模块60,用于根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限;
权限失败信息发送模块70,用于若所述用户终端没有获取所述网关客户端的权限,将获取权限失败信息根据所述第一标识信息发送给所述用户终端。
请参见图9,可选地,在本申请实施例中,还包括:
控制指令发送模块80,用于若所述用户终端有获取所述网关客户端的权限,则根据所述第二标识信息将所述控制指令发送给对应的所述网关客户端。
请参见图9,可选地,在本申请实施例中,还包括:
认证信息接收模块10,用于接收所述用户终端发送的认证信息,所述认证信息包括用户名和密码;
认证信息判断模块20,用于判断所述用户终端发送的认证信息是否已经存储在所述服务器上;
认证成功信息发送模块30,用于若所述用户终端发送的认证信息存储在所述服务器上,则将认证成功信息发送给所述用户终端。
请参见图9,可选地,在本申请实施例中,还包括:
认证失败信息发送模块40,用于若所述用户终端发送的认证信息未存储在所述服务器上,则将认证失败信息发送给所述用户终端。
本申请提供一种物联网通信方法及装置,当服务器接收网关客户端发送的响应信息时,便立即根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端;当然服务器接收网关客户端发送的更新的响应信息时,便立即根据所述第一标识信息,将所述响应信息发送给与所述第一标识信息对应的所述用户终端。通过这种方式从而有效地解决了现有技术中网页客户端、服务器和网关客户端之间的信息传输实时性很差的问题。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (6)
1.一种物联网通信方法,其特征在于,包括:
服务器接收网关客户端发送的响应信息,所述网关客户端是连接传感器网络与互联网网络的客户端,所述响应信息包括用于标识用户终端的第一标识信息;
所述服务器使用Netty服务端与网页客户端建立Websocket连接之后,根据所述第一标识信息将所述响应信息发送给与所述第一标识信息对应的所述用户终端,其中,所述用户终端是在电脑上或者手机上登录的网页客户端;
其中,在所述服务器接收网关客户端发送的响应信息之前,还包括:接收所述用户终端发送的控制指令,所述控制指令包括所述第一标识信息和用于标识所述网关客户端的第二标识信息;根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限;若否,则将获取权限失败信息根据所述第一标识信息发送给所述用户终端;若所述用户终端有获取所述网关客户端的权限,则根据所述第二标识信息将所述控制指令发送给对应的所述网关客户端;
所述Netty服务端在监听到所述网关客户端通过端口连接时,将一个套接字通道绑定到所述服务器的work线程池;所述服务器若通过所述套接字通道接收到包括User_ID的信息数据,则在表User_Index中查询所述User_ID对应的sessionID,并通过sessionID确定对应的网页客户端,然后向所述网页客户端推送所述信息数据;所述服务器在接收到所述包括User_ID的信息数据之后,在表User_Order中查询所述User_ID对应的命令信息,并向所述网关客户端推送所述命令信息;其中,所述表User_Index中的所述User_ID和所述User_ID对应的sessionID是在建立所述Websocket连接之后存入的,所述表User_Order中的所述User_ID和所述User_ID对应的命令信息是在建立所述Websocket连接之后存入的。
2.如权利要求1所述的物联网通信方法,其特征在于,在所述接收所述用户终端发送的控制指令,所述控制指令包括所述网关客户端的标识信息之前,还包括:
接收所述用户终端发送的认证信息,所述认证信息包括用户名和密码;
判断所述用户终端发送的认证信息是否已经存储在所述服务器上;
若是,则将认证成功信息发送给所述用户终端。
3.如权利要求2所述的物联网通信方法,其特征在于,在所述判断所述用户终端发送的认证信息是否已经存储在所述服务器上之后,还包括:
若所述用户终端发送的认证信息未存储在所述服务器上,则将认证失败信息发送给所述用户终端。
4.一种物联网通信装置,其特征在于,所述物联网通信装置包括:
响应信息接收模块,用于服务器接收网关客户端发送的响应信息,所述网关客户端是连接传感器网络与互联网网络的客户端,所述响应信息包括用于标识用户终端的第一标识信息;
响应信息发送模块,用于所述服务器在使用Netty服务端与网页客户端建立Websocket连接之后,根据所述第一标识信息将所述响应信息发送给与所述第一标识信息对应的所述用户终端,其中,所述用户终端是在电脑上或者手机上登录的网页客户端;
其中,所述物联网通信装置,还包括:控制指令接收模块,用于接收所述用户终端发送的控制指令,所述控制指令包括所述第一标识信息和用于标识所述网关客户端的第二标识信息;获取权限判断模块,用于根据所述第一标识信息和所述第二标识信息,判断所述用户终端是否有获取所述网关客户端的权限;权限失败信息发送模块,用于若所述用户终端没有获取所述网关客户端的权限,将获取权限失败信息根据所述第一标识信息发送给所述用户终端;控制指令发送模块,用于若所述用户终端有获取所述网关客户端的权限,则根据所述第二标识信息将所述控制指令发送给对应的所述网关客户端;
所述Netty服务端在监听到所述网关客户端通过端口连接时,将一个套接字通道绑定到所述服务器的work线程池;所述服务器若通过所述套接字通道接收到包括User_ID的信息数据,则在表User_Index中查询所述User_ID对应的sessionID,并通过sessionID确定对应的网页客户端,然后向所述网页客户端推送所述信息数据;所述服务器在接收到所述包括User_ID的信息数据之后,在表User_Order中查询所述User_ID对应的命令信息,并向所述网关客户端推送所述命令信息;其中,所述表User_Index中的所述User_ID和所述User_ID对应的sessionID是在建立所述Websocket连接之后存入的,所述表User_Order中的所述User_ID和所述User_ID对应的命令信息是在建立所述Websocket连接之后存入的。
5.如权利要求4所述的物联网通信装置,其特征在于,还包括:
认证信息接收模块,用于接收所述用户终端发送的认证信息,所述认证信息包括用户名和密码;
认证信息判断模块,用于判断所述用户终端发送的认证信息是否已经存储在所述服务器上;
认证成功信息发送模块,用于若所述用户终端发送的认证信息存储在所述服务器上,则将认证成功信息发送给所述用户终端。
6.如权利要求5所述的物联网通信装置,其特征在于,还包括:
认证失败信息发送模块,用于若所述用户终端发送的认证信息未存储在所述服务器上,则将认证失败信息发送给所述用户终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810859943.8A CN108616606B (zh) | 2018-08-01 | 2018-08-01 | 一种物联网通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810859943.8A CN108616606B (zh) | 2018-08-01 | 2018-08-01 | 一种物联网通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108616606A CN108616606A (zh) | 2018-10-02 |
CN108616606B true CN108616606B (zh) | 2021-10-26 |
Family
ID=63666947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810859943.8A Active CN108616606B (zh) | 2018-08-01 | 2018-08-01 | 一种物联网通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108616606B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109769001B (zh) * | 2019-03-19 | 2022-02-11 | 中信梧桐港供应链管理有限公司 | 一种物联网数据传输方法及系统 |
CN110365782A (zh) * | 2019-07-18 | 2019-10-22 | 江苏德高物联技术有限公司 | 一种基于Netty的物联通讯方法、设备、硬件终端及服务器 |
CN110401710A (zh) * | 2019-07-24 | 2019-11-01 | 广州万物智联科技有限公司 | 通用物联网系统 |
CN110868349B (zh) * | 2019-11-27 | 2021-07-09 | 河钢数字技术股份有限公司 | 物联网环境下分布式高并发数据采集与处理方法及系统 |
CN111147579B (zh) * | 2019-12-25 | 2020-11-24 | 长江水利委员会水文局长江中游水文水资源勘测局 | 基于Web技术的水文缆道自动测控系统 |
CN111294382A (zh) * | 2019-12-30 | 2020-06-16 | 欧普照明股份有限公司 | 一种数据实时推送方法及装置 |
CN112714162A (zh) * | 2020-12-22 | 2021-04-27 | 上海上实龙创智能科技股份有限公司 | 一种基于Netty的物联网通信系统及方法 |
CN113726731A (zh) * | 2021-07-15 | 2021-11-30 | 浪潮软件股份有限公司 | 基于tcp实现终端app与服务器实时通讯的方法与系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262564A (zh) * | 2011-08-16 | 2011-11-30 | 天津市天祥世联网络科技有限公司 | 视频监控平台系统的线程池结构及实现方法 |
CN103634384A (zh) * | 2013-11-21 | 2014-03-12 | 山东康威通信技术股份有限公司 | 一种基于Flash技术在浏览器上实时远程监控终端设备的方法 |
CN104954454A (zh) * | 2015-06-03 | 2015-09-30 | 维融集团有限公司 | 一种智能控制方法及设备 |
CN104980289A (zh) * | 2014-04-14 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 消息推送方法、装置和系统 |
CN105005201A (zh) * | 2015-06-04 | 2015-10-28 | 广东康宝电器股份有限公司 | 智能家居多移动终端数据同步与推送系统 |
WO2016033581A1 (en) * | 2014-08-29 | 2016-03-03 | 5Th Dimension Llc | Message identification, processing, and monitoring systems and methods for communications commerce |
CN108306953A (zh) * | 2018-01-23 | 2018-07-20 | 江苏微物网络科技有限公司 | 一种用于物联网应用数据呈现的强兼容性实时推送方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030101383A1 (en) * | 2001-11-29 | 2003-05-29 | Carlson Barry L. | Automatic file system maintainer |
CN103533389A (zh) * | 2013-05-02 | 2014-01-22 | 乐视网信息技术(北京)股份有限公司 | 一种视频推送的方法及系统 |
CN107493349A (zh) * | 2017-09-27 | 2017-12-19 | 四川长虹电器股份有限公司 | 基于WebSocket的家庭智能网关控制系统及方法 |
-
2018
- 2018-08-01 CN CN201810859943.8A patent/CN108616606B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262564A (zh) * | 2011-08-16 | 2011-11-30 | 天津市天祥世联网络科技有限公司 | 视频监控平台系统的线程池结构及实现方法 |
CN103634384A (zh) * | 2013-11-21 | 2014-03-12 | 山东康威通信技术股份有限公司 | 一种基于Flash技术在浏览器上实时远程监控终端设备的方法 |
CN104980289A (zh) * | 2014-04-14 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 消息推送方法、装置和系统 |
WO2016033581A1 (en) * | 2014-08-29 | 2016-03-03 | 5Th Dimension Llc | Message identification, processing, and monitoring systems and methods for communications commerce |
CN104954454A (zh) * | 2015-06-03 | 2015-09-30 | 维融集团有限公司 | 一种智能控制方法及设备 |
CN105005201A (zh) * | 2015-06-04 | 2015-10-28 | 广东康宝电器股份有限公司 | 智能家居多移动终端数据同步与推送系统 |
CN108306953A (zh) * | 2018-01-23 | 2018-07-20 | 江苏微物网络科技有限公司 | 一种用于物联网应用数据呈现的强兼容性实时推送方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108616606A (zh) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108616606B (zh) | 一种物联网通信方法及装置 | |
Cavalieri et al. | Integrating OPC UA with web technologies to enhance interoperability | |
Curbera et al. | Unraveling the Web services web: an introduction to SOAP, WSDL, and UDDI | |
CN107278363B (zh) | 用于网络通信的系统和技术 | |
US7159028B1 (en) | Method and apparatus using XML for both a protocol layer and application layer | |
EP2632110B1 (en) | Common message header bearer method and device for converting simple object access protocol application programming interface (soap api) into representional state transfer application programming interface (rest api) | |
US20170279874A1 (en) | Translation of messages using sensor-specific and unified protocols | |
CN102902537A (zh) | 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架 | |
CN110769009B (zh) | 用户身份认证方法及系统 | |
US11330035B2 (en) | Method and server for HTTP protocol-based data request | |
CN102694830A (zh) | 一种实现网络内容分享的方法、系统和装置 | |
Velez et al. | IEEE 1451-1-6: Providing common network services over MQTT | |
US8065715B2 (en) | Authenticating a user of a wireless data processing device | |
CN117615043B (zh) | 一种边缘网关上服务间通信方法及系统 | |
JP2004046810A (ja) | クライアント/サーバ環境におけるアプリケーションステップのディスパッチ方法及びサービスポータルシステム | |
KR100692658B1 (ko) | 이동 통신 단말, 게이트웨이 및 무선 인터넷 서비스 제공방법 | |
Hu et al. | Research and implementation of campus information push system based on WebSocket | |
WO2022220352A1 (ko) | 멀티미디어 재난정보를 제공하는 open api 서비스 시스템 | |
US20240193249A1 (en) | Method of processing cross-domain authorization and method of processing cross-domain call | |
Chika et al. | Financial stock application using websocket in Real Time Application | |
US8271668B2 (en) | XML in the MASP client-server protocol | |
KR20020010071A (ko) | 무선 사이트의 컨텐츠 리퍼메팅 시스템 및 그 방법 | |
CN107332891B (zh) | Http请求处理的方法、服务器及客户端 | |
US20130007589A1 (en) | Interaction via short message service messages with wireless markup language based websites | |
WO2018153231A1 (zh) | 信息处理的方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |