CN112804338A - 一种Web前端与物联网设备远程通信的方法 - Google Patents
一种Web前端与物联网设备远程通信的方法 Download PDFInfo
- Publication number
- CN112804338A CN112804338A CN202110095588.3A CN202110095588A CN112804338A CN 112804338 A CN112804338 A CN 112804338A CN 202110095588 A CN202110095588 A CN 202110095588A CN 112804338 A CN112804338 A CN 112804338A
- Authority
- CN
- China
- Prior art keywords
- sip
- message
- equipment
- server
- internet
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000006854 communication Effects 0.000 title claims abstract description 25
- 238000004891 communication Methods 0.000 title claims abstract description 24
- 230000005540 biological transmission Effects 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims description 9
- 230000011664 signaling Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 230000006855 networking Effects 0.000 claims description 2
- 238000011161 development Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Telephonic Communication Services (AREA)
Abstract
一种Web前端与物联网设备远程通信的方法,通过Web前端发送http请求到Web服务器查询mysql设备信息表中的设备信息,并对其进行绑定;Web前端通过发送不同参数的http操作设备请求到Web服务器;Web服务器的HTTP协议转SIP协议模块将不同的参数的http消息转换封装成不同类型的sip消息,然后通过TCP或UDP的传输方式将sip消息发送到Sip服务器上;Sip服务器根据sip消息头中的相关字段在内存中查找已经注册登录并与Sip服务器维持心跳保活目标设备建立的Session;Sip服务器将Web服务器发送sip消息的消息体中Xml格式操作数据重新封装成一个新的sip消息,通过找到的设备Session,将操作数据采用TCP或UDP的方式发送给物联网设备,物联网设备收到消息后执行该操作;实现Web前端与物联网设备的远程通信。
Description
技术领域
本发明涉及互联网通信领域,尤其涉及一种Web前端与物联网设备远程通信的方法。
背景技术
随着互联网技术的不断发展,物联网设备出现在越来越多的生产生活场景中。以智能家居为例,利用网络通信技术、自动控制技术、音视频技术等将家居生活有关的设施集成,构建高效的住宅设施与家庭日常事物的管理系统,提升家居安全性、便利性、舒适性,并实现环保节能的居住环境。
C/S结构也就是客户端/服务器结构对于小型局域网中建立通信有一定优势。但是APP客户端具有开发周期长、成本高、维护升级困难、使用前必须下载安装等特点。开发人员一直在寻找一种开发效率高,代价低的开发模式。Web前端页面具有兼容性较高、界面UI设计友好、开发周期短、易于维护等特点使得B/S结构的开发模式成为项目开发者更好的选择。
Web前端是以HTTP协议进行数据传输的,而HTTP协议是使用了面向连接的TCP作为传输层协议。对于一些时延要求较高的物联网设备不能满足低时延的要求。而使用UDP作为传输层协议,不能建立可靠的数据传输。SIP会话初始协议也是一个信令协议,SIP协议既可以使用TCP传输也可以使用UDP传输,能够与所有支持TCP或者UDP传输的物联网设备进行通信。建立Web前端页面与物联网设备的数据通信需要能将HTTP协议与SIP协议之间进行转换,然后将转换后的sip信令消息通过物联网设备的特性选择采用TCP或者UDP来传输,建立普适的Web前端与物联网设备的远程通信。
HTTP(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP协议使用了面向连接的TCP协议作为传输层协议,保证了数据的可靠传输。但是,HTTP协议本身是无连接的。就是说,虽然HTTP协议使用了TCP连接,但通信的双方在交换HTTP报文之前是不需要先建立HTTP连接的。HTTP协议是无状态的(stateless)。同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的响应相同。HTTP协议是媒体独立的。这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以使用HTTP发送。HTTP协议还具有简单灵活快速的特点,使用HTTP协议开发的项目对开发人员的开发水平要求不高且容错性强。HTTP协议是目前Web前端广泛使用的一种协议。
SIP(Session Initiation Protocol,会话发起协议)是由IETF(InternetEngineering Task Force,互联网工程任务组)提出的IP电话信令协议,是采用UTF-8字符集来进行编码的文本协议。SIP是一种通信协议,定义了如何在通信设备(计算机、电话、手机等)之间相互连接和信息交换,SIP也是一种信令控制协议,可以配置和管理任何类型的peer-to-peer通信会话,但并不关心媒体类型(语音、短信、游戏、视频等)。SIP协议具有良好的可扩展特性,可以方便地增加定义,嵌入各种用户终端并迅速实现新功能;有较强的互操作能力,良好的开放性。
发明内容
为了解决现有技术的Web前端页面与物联网设备之间的远程通信方式不能做到普适性的问题,本发明提供了一种Web前端与物联网设备远程通信的方法。
本发明的一种Web前端与物联网设备远程通信的方法,涉及Web前端、Web服务器、Sip服务器、mysql数据库、物联网设备。该方法简要流程为用户通过Web前端向Web服务器发送http请求查询mysql数据库中设备信息,并对设备进行绑定操作。用户通过Web前端向Web服务器发送带有不同参数数据和操作指令的的http请求,Web服务器将不同参数的http请求通过HTTP协议转SIP协议模块进行转换封装成不同类型的sip消息并转发给Sip服务器。通过Sip服务器解析sip消息,根据sip消息字段中的信息从内存中查找已经与Sip服务器进行注册登录并维持心跳连接的设备Session,通过该设备Session将操作数据封装成新的sip消息根据设备特性使用TCP或UDP传输协议发送给物联网设备,建立普适的Web前端与物联网设备的远程通信。该方法步骤具体描述如下:
1)搭建Sip服务器和Web服务器,具体包括:Sip服务器用于建立Sip终端与Sip服务器之间的信令通信,实时更新Sip终端在线状态,转发sip消息到设备端,以及对mysql数据库数据的增删改查操作;Web服务器由linux系统、Nginx服务模块、Mysql数据存储模块、PHP语言模块共同搭建;Web服务器对前端界面和物联网设备发送的http请求进行执行和回复响应;通过Web服务器中的HTTP协议和SIP协议的转换模块,将Web前端界面发送的http消息转成sip消息并发送给Sip服务器;对数据库的操作,对数据库中保存数据的增删改查。
2)物联网设备注册登录Sip服务器,具体包括:物联网设备向Sip服务器发送注册登录sip消息,Sip服务器收到物联网设备发送的sip注册登录消息,并对sip消息进行解析处理;经过加密认证的流程通过后对注册登录成功的物联网设备,在Sip服务器上初始化一个与物联网设备之间的Session作为值,将这个设备的Id作为键,设备Id和Session以键-值对的形式保存在内存中;然后更新mysql数据库中物联网设备在线标识;为了保证Sip服务器与设备一直处于相连状态,设备每隔一段时向Sip服务器发送类型为REGISTER、内容为heartbeat的心跳包消息,Sip服务器接收到后回复200OK消息;如果超过一定时间未收到来自物联网设备的heartbeat心跳消息,在Sip服务器上注销与当前物联网设备的会话并擦除内存中保存的设备Id和Session的键-值对。
3)Web前端用户建立与Web服务器和Sip服务器的连接,具体包括:用户通过Web前端操作物联网设备前,需要在Web前端注册界面注册一个账号然后登录;在注册的过程中,注册界面将用户的注册信息通过http请求发送到Web服务器,Web服务器生成一个独一的UserId给此用户,并将用户信息存储在Mysql的用户信息表中;用户操作Web前端页面发送http请求到Web服务器查询数据表中设备在线状态并对在线设备进行绑定请求,Web服务器收到绑定请求后自动向Sip服务器发送封装好的sip消息到Sip服务器上进行注册登录,登录成功后向Sip服务器发送sip消息心跳包,保持与Sip服务器的连接。
4)用户操作Web前端界面向Web服务器发送http请求,其中包含绑定设备Id、操作用户UserId、对设备的操作等参数。
5)Web服务器收到http消息将其处理转换成sip消息并转发给Sip服务器,具体包括:Web服务器收到用户发送http请求后,通过HTTP协议转SIP协议模块,使用getParam()函数获取http消息中所携带的参数和操作指令以及解析http消息头中的相关字段获取源IP地址,将这些参数指令和源地址替换到sip消息头的Start-line行和From、To、Contact字段中,将操作数据添加到Xml格式的sip消息体中生成一个新的sip消息,将转换后的sip信令消息根据设备特性采用TCP或者UDP来传输到Sip服务器;若物联网设备需要提供可靠传输,对时延要求不敏感,则选择TCP传输数据。若物联网设备对传输时延敏感,如物联网游戏设备则通过UDP传输数据,在相同的网络链路环境下降低传输时延;Web服务器在执行绑定设备命令时向Sip服务器发送的是REGISTER类型的sip消息,在执行操作设备命令时发送的是NOTIFY类型的sip消息。
6)Sip服务器收到Web服务器发送的sip消息进行处理转发给物联网设备,具体包括:Sip服务器收到Web服务器发送来的sip消息先查询内存中保存的用户UserId和Session键-值对,如果键-值对中存在该用户的UserId和Session就开始解析此sip消息,根据sip消息类型不同采取不同的解析方式;如果sip消息类型是REGISTER的心跳消息,Sip服务器根据sip消息头中的From字段和To字段可以获取此sip消息的来源用户的UserId和目的设备的DevId来保持用户的在线状态和查询设备的在线状态;如果sip消息类型是NOTIFY的通知消息,则根据sip消息头中的To字段获取执行操作设备的DevId,根据目的设备的DevId在内存中保存的DevId和Session键-值对中查找所对应DevId的Session键-值对;如果存在该设备的DevId和Session键-值对,就重新生成一个NOTIFY类型的sip消息,将对设备操作的Xml格式消息体加入新的sip消息体中,通过该设备Session将新的sip消息根据物联网设备特性使用TCP或UDP发给相应设备,并通过用户Session回复200OK消息给Web服务器;如果内存中不存在该设备的DevId和Session键-值对,说明目标设备当前不在线。通过用户Session回复200OK消息,并在此消息的Xml格式消息体中加入设备离线标签,提示用户目标设备当前不在线。
7)物联网设备收到由Sip服务器发送来的sip消息之后回复响应信息200OK,并开始解析此消息中消息体内容并开始执行该操作。
通过以上7个步骤实现Web前端与物联网设备的远程通信。
优选地,步骤3)所述的用户信息包括:UserId、用户IP、端口号。
本发明的有益效果主要表现在:(1)此方法采用B/S结构,提高了Web前端项目的开发效率,降低了开发和维护的成本。
(2)Web前端只需要发送简单的http请求,将协议转换,消息转发等工作都迁移到了高性能的Web服务器上,提升了Web前端界面的流畅度,降低了浏览器的压力。
(3)协同Sip服务器,使用sip消息作为信令消息,根据物联网设备的特点采用合适的传输协议,不仅能提供数据的可靠传输,还能满足低时延要求。对目前的物联网设备具有普适性。
附图说明
图1是本发明方法的整体框架图。
图2是本发明方法的Sip服务器注册登录流程图。
图3是本发明方法的Sip终端传递心跳信息流程图。
图4是本发明方法的Web前端到物联网设备的数据传输流程图。
图5是本发明方法的Web服务器收到http消息的处理流程图。
图6是本发明方法的Sip服务器收到sip消息的处理流程图。
具体实施方式
下面参照结合附图,对本发明进行进一步详细说明。
参照图1,可看到本发明提供的一种Web前端与物联网设备的远程通信整体框架图,此框架图中包含5个部分,分别是Web前端、Web服务器、Mysql数据库、Sip服务器、物联网设备。Web前端主要是提供用户操作界面,通过用户点击前端界面上的一些标签向Web服务器发送http请求。Web服务器是由linux系统、Nginx服务模块、Mysql数据存储模块、PHP语言模块共同搭建的。Web服务器承担功能有:对前端界面和物联网设备发送的http请求进行执行和回复响应;通过HTTP协议和SIP协议的相互转换,将发送到物联网设备上的http消息转成sip消息根据物联网设备特性通过TCP或UDP将sip消息转发给SIP服务器;对数据库的操作,对数据库中保存数据的增删改查;Mysql数据库主要是对前端用户信息、物联网设备信息、用户绑定信息、物联网设备在线状态、设备操作结果等数据进行存储。Web服务器和Sip服务器都可以对Mysql数据库进行管理操作。Sip服务器主要是接收设备发送的sip消息和Web服务器转发来的sip消息,通过不同解析类型的sip消息执行不同的操作,然后通过TCP或者UDP传输协议发送sip消息到设备或者Web服务器。本方法中主要用到两种类型的sip消息分别是“REGISTER”和“NOTIFY”类型。“REGISTER”消息类型主要是用于Sip终端的注册登录和心跳保活。“NOTIFY”消息类型主要承载用户对物联网设备的操作命令以及Sip服务器与物联网设备之间的通信。物联网设备主要是执行Sip服务器发送的sip操作消息,执行完操作命令后将执行结果通过http请求发送到Web服务器。
参照图2,当Sip终端与Sip服务器进行通信时首先要进行注册登录。图2中的F1是Sip终端向Sip服务器发送REGISTER类型的sip登录请求,在sip消息的From字段中添加Sip终端的Id信息,这个Id信息是Sip终端独有的一个序号。F2是当服务器收到此sip消息之后会暂时保存Sip终端的Id信息并响应200OK和一个加密种子seed给Sip终端。F3是Sip终端收到带有加密种子的200OK回复消息后,通过一定算法将加密种子和Sip终端的Id进行加密后生成一个密文PWD,然后将加密的密文PWD通过REGISTER类型的sip消息再次发送给Sip服务器。F4为Sip服务器收到消息之后通过解密算法将密文PWD解密得到seed和Id并与之前保存的seed和Id进行对比,若seed和Id都一致,则返回Sip终端200OK和TIME时间信息表示Sip终端注册登录成功。此时Sip服务器将数据库中终端设备在线状态更新为“online”在线标识,并为Sip终端保存一个Id信息和Session的键-值对保存在内存中。参照图3,Sip终端每隔一段时间向Sip服务器发送REGISTER请求,REGISTER请求的消息体应该添加Xml节点hearbeat_request表示心跳包(这个节点名是和Sip服务器共通制定的)。这个心跳包是维持保存在Sip服务器内存中的键-值对。当超过一定时间时间内没有收到Sip终端发送的心跳包就认为Sip终端已经离线,Sip服务器主动将内存中Sip终端的Id和Session键-值对擦除,同时操作数据库将终端设备在线状态更新为“offline”离线标识。
在用户操作前,需要在Web前端注册界面注册一个账号然后登录。在注册的过程中,注册界面会将用户的注册信息通过http请求发送到Web服务器,Web服务器生成一个独一的UserId给此用户,并将UserId、用户IP、端口号等用户信息存储在Mysql的用户信息表中。物联网设备的设备信息在设备初始化的时候就被存储在Mysql的设备信息表中。
用户通过Web前端操作发送http请求到Web服务器查询设备在线状态并对设备进行绑定请求,Web服务器收到绑定请求后先将用户信息和所绑定的设备信息存入数据库中,然后Web服务器向Sip服务器发送封装后的REGISTER类型的sip消息到Sip服务器上进行注册登录,收到Sip服务器返回的200OK信息之后,Web服务器返回200OK给Web前端。当绑定完成后,Web前端界面设置一个定时器定时向Web服务器发送带有REGISTER和heartbeat_request等参数的http消息,此种http消息在Web服务器上通过http协议转sip协议模块转换成sip心跳消息发送给Sip服务器,来维持用户在线状态。通过sip心跳消息中的To字段来获取绑定设备的Id,在内存中查询目的Session来判断当前时间设备的在线状态。sip心跳消息中的From和To字段如下所示:
From:"1895590****"<sip:321000000000044992@101.69.255.133:18000>;tag=032c38aa99e476b0d391e020b5fe5484a1edab88
To:"rvsup"<sip:310023003100230001@101.69.255.131:6061>
From字段中321000000000044992为用户UserId,To字段中310023003100230001为目标设备DevId。
参照图4和5,用户操作Web前端界面向Web服务器发送http请求,其中包含绑定设备的信息、用户信息、对设备的操作等参数。如果是注册登录和心跳消息,http请求中需要带有type=REGISTER参数,如果是对设备的操作消息,http请求中需要带有type=NOTIFY参数。Web服务器收到用户发送http请求后使用getParam()函数将设备信息、用户信息、操作数据等参数提取出来,然后通过http协议转sip协议模块根据参数中type的类型选择封装成REGISTER或NOTIFY类型的sip消息头,将其他参数如用户的UserId,绑定设备的DevId,操作指令等信息替换在封装好的sip消息头字段和Xml消息体中,然后通过TCP或UDP传输层协议发送给Sip服务器并等待Sip服务器的200OK响应。当Web服务器收到Sip服务器响应的200OK消息,然后将sip消息中Xml消息体中<dev_status>设备在线状态标签中的数据返回给Web前端,在前端显示用户绑定设备的在线状态。Web服务器在执行绑定设备命令时,向Sip服务器发送注册登录的是REGISTER类型的sip消息。在维持心跳包向Sip服务器发送的也是REGISTER类型的消息。在执行操作设备命令时发送的是NOTIFY类型的sip消息。
参照图4和图5,以用户操作Web前端向物联网设备发送操作命令为例,具体阐述http协议转sip协议模块的具体工作流程。用户操作Web前端向Web服务器发送http消息,此消息中包含参数type=NOTIFY、UserId=***、DevId=***、options=***等参数。Web服务器收到http消息使用getParam()函数将获取参数并保存在变量中。使用PHP语言中的$_SERVER[]超全局变量来解析http消息头中Host字段获取Web前端的IP和端口号,Sip服务器的IP和端口号已知。将这些变量和IP地址分别替换在sip消息中的Start-line行,消息头From、To、Contact字段的源地址和目的地址中。将操作指令封装到Xml消息体中,生成一条sip消息。
参照图6,Sip服务器收到Web服务器发送来的sip消息中的From字段内容来查询内存中的用户Id和Session键-值对,判断此用户是否已经在Sip服务器上注册登录。如果内存键-值对中存在该UserId和Session就开始解析此sip消息,根据sip消息类型不同采取不同的解析方式。如果sip消息类型是REGISTER的心跳消息,Sip服务器会根据sip消息头中的From字段和To字段可以获取此sip消息的来源用户的UserId和目的设备的DevId来保持用户的在线状态和查询设备的在线状态,然后通过用户Session回复Web服务器200OK和设备当前在线状态,通过sip心跳包机制可以实时探测设备物联网设备当前是否在线。如果sip消息类型是NOTIFY的通知消息,则根据sip消息头中的To字段获取执行操作设备的DevId,根据目的设备的DevId在内存中保存的DevId和Session键-值对中查找所对应DevId的Session。如果存在该DevId的Session键-值对,就重新生成一个NOTIFY类型的sip消息,将对设备操作的Xml格式消息体加入新的sip消息体中,通过该Session将新的sip消息采用TCP或UDP的传输层协议发送给物联网设备,并通过用户Session回复200OK消息给Web服务器。如果不存在该DevId的Session键-值对,说明目标设备当前不在线。通过用户Session回复200OK消息,并在此消息的Xml格式消息体中加入设备离线标签,提示用户目标设备当前不在线。
当物联网设备收到Sip服务器发送的NOTIFY类型的sip消息后,先回复Sip服务器200OK消息,然后开始解析sip消息中的Xml格式消息体,获取到操作命令<Options>标签,根据操作命令执行相应操作。至此,整个Web前端到物联网设备的远程通信过程结束。
这里需要指出的是,本发明中的具体实施只是列举了本发明的个别实例,使用本发明的设计思想及其等效变化实现的方案,均应属于本发明的保护范围。
Claims (2)
1.一种Web前端与物联网设备远程通信方法,其特征在于,包括:用户通过Web前端向Web服务器发送http请求查询mysql数据库中设备信息,并对设备进行绑定操作;用户通过Web前端向Web服务器发送带有不同参数数据和操作指令的的http请求,Web服务器将不同参数的http请求通过HTTP协议转SIP协议模块进行转换封装成不同类型的sip消息并转发给Sip服务器;通过Sip服务器解析sip消息,根据sip消息字段中的信息从内存中查找已经与Sip服务器进行注册登录并维持心跳连接的设备Session,通过该设备Session将操作数据封装成新的sip消息根据设备特性使用TCP或UDP传输协议发送给物联网设备,建立普适的Web前端与物联网设备的远程通信;具体包括如下步骤:
1)搭建Sip服务器和Web服务器,具体包括:Sip服务器建立Sip终端与Sip服务器之间的信令通信,实时更新Sip终端在线状态,转发sip消息到设备端,以及对mysql数据库数据的增删改查操作;Web服务器由linux系统、Nginx服务模块、Mysql数据存储模块、PHP语言模块共同搭建;Web服务器对前端界面和物联网设备发送的http请求进行执行和回复响应;通过Web服务器中的HTTP协议和SIP协议的转换模块,将Web前端界面发送的http消息转成sip消息并发送给Sip服务器;对数据库的操作,对数据库中保存数据的增删改查;
2)物联网设备注册登录Sip服务器,具体包括:物联网设备向Sip服务器发送注册登录sip消息,Sip服务器收到物联网设备发送的sip注册登录消息,并对sip消息进行解析处理;经过加密认证的流程通过后对注册登录成功的物联网设备,在Sip服务器上初始化一个与物联网设备之间的Session作为值,将这个设备的Id作为键,设备Id和Session以键-值对的形式保存在内存中;然后更新mysql数据库中物联网设备在线标识;为了保证Sip服务器与设备一直处于相连状态,设备每隔一段时向Sip服务器发送类型为REGISTER、内容为heartbeat的心跳包消息,Sip服务器接收到后回复200OK消息;如果超过一定时间未收到来自物联网设备的heartbeat心跳消息,在Sip服务器上注销与当前物联网设备的会话并擦除内存中保存的设备Id和Session的键-值对;
3)Web前端用户建立与Web服务器和Sip服务器的连接,具体包括:用户通过Web前端操作物联网设备前,需要在Web前端注册界面注册一个账号然后登录;在注册的过程中,注册界面将用户的注册信息通过http请求发送到Web服务器,Web服务器生成一个独一的UserId给此用户,并将UserId、用户IP、端口号等用户信息存储在Mysql的用户信息表中;用户操作Web前端页面发送http请求到Web服务器查询数据表中设备在线状态并对在线设备进行绑定请求,Web服务器收到绑定请求后自动向Sip服务器发送封装好的sip消息到Sip服务器上进行注册登录,登录成功后向Sip服务器发送sip消息心跳包,保持与Sip服务器的连接;
4)用户操作Web前端界面向Web服务器发送http请求,其中包含绑定设备Id、操作用户UserId、对设备的操作的参数;
5)Web服务器收到http消息将其处理转换成sip消息并转发给Sip服务器,具体包括:Web服务器收到用户发送http请求后,通过HTTP协议转SIP协议模块,使用getParam()函数获取http消息中所携带的参数和操作指令以及解析http消息头中的相关字段获取源IP地址,将这些参数和操作指令和源IP地址替换到sip消息头的Start-line行和From、To、Contact字段中,将操作数据添加到Xml格式的sip消息体中生成一个新的sip消息,将转换后的sip信令消息根据设备特性采用TCP或者UDP来传输到Sip服务器;若物联网设备需要提供可靠传输,对时延要求不敏感,则选择TCP传输数据;若物联网设备对传输时延敏感,如物联网游戏设备则通过UDP传输数据,在相同的网络链路环境下降低传输时延;Web服务器在执行绑定设备命令时向Sip服务器发送的是REGISTER类型的sip消息,在执行操作设备命令时发送的是NOTIFY类型的sip消息;
6)Sip服务器收到Web服务器发送的sip消息进行处理转发给物联网设备,具体包括:Sip服务器收到Web服务器发送来的sip消息先查询内存中保存的用户UserId和Session键-值对,如果键-值对中存在该用户的UserId和Session就开始解析此sip消息,根据sip消息类型不同采取不同的解析方式;如果sip消息类型是REGISTER的心跳消息,Sip服务器根据sip消息头中的From字段和To字段可以获取此sip消息的来源用户的UserId和目的设备的DevId来保持用户的在线状态和查询设备的在线状态;如果sip消息类型是NOTIFY的通知消息,则根据sip消息头中的To字段获取执行操作设备的DevId,根据目的设备的DevId在内存中保存的DevId和Session键-值对中查找所对应DevId的Session键-值对;如果存在该设备的DevId和Session键-值对,就重新生成一个NOTIFY类型的sip消息,将对设备操作的Xml格式消息体加入新的sip消息体中,通过该设备Session将新的sip消息根据物联网设备特性使用TCP或UDP发给相应设备,并通过用户Session回复200OK消息给Web服务器;如果内存中不存在该设备的DevId和Session键-值对,说明目标设备当前不在线;通过用户Session回复200OK消息,并在此消息的Xml格式消息体中加入设备离线标签,提示用户目标设备当前不在线;
7)物联网设备收到由Sip服务器发送来的sip消息之后回复响应信息200OK,并开始解析此消息中消息体内容并开始执行该操作。
2.一种Web前端与物联网设备远程通信方法,其特征在于:步骤3)所述的用户信息包括:UserId、用户IP、端口号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110095588.3A CN112804338A (zh) | 2021-01-25 | 2021-01-25 | 一种Web前端与物联网设备远程通信的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110095588.3A CN112804338A (zh) | 2021-01-25 | 2021-01-25 | 一种Web前端与物联网设备远程通信的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112804338A true CN112804338A (zh) | 2021-05-14 |
Family
ID=75811512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110095588.3A Pending CN112804338A (zh) | 2021-01-25 | 2021-01-25 | 一种Web前端与物联网设备远程通信的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112804338A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113038090A (zh) * | 2021-05-24 | 2021-06-25 | 武汉中科通达高新技术股份有限公司 | 一种传输链路管理方法和系统 |
CN113848838A (zh) * | 2021-10-08 | 2021-12-28 | 南京工程学院 | 一种工业物联网的数据通信系统、方法 |
CN114143291A (zh) * | 2021-11-18 | 2022-03-04 | 广西北投信创科技投资集团有限公司 | 一种基于tcp和udp的http通信方法及其系统 |
CN114338094A (zh) * | 2021-12-09 | 2022-04-12 | 北京五八信息技术有限公司 | 请求头信息的采集方法、装置、电子设备及可读介质 |
CN114500100A (zh) * | 2022-03-07 | 2022-05-13 | 南京甄视智能科技有限公司 | 一种基于ace架构的物联网设备接入系统及方法 |
CN114553948A (zh) * | 2022-02-11 | 2022-05-27 | 支付宝(杭州)信息技术有限公司 | 服务处理方法及装置 |
CN116366472A (zh) * | 2023-04-11 | 2023-06-30 | 广东保伦电子股份有限公司 | 一种减少服务器转发压力的前端控制、服务器转发方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101056304A (zh) * | 2006-04-17 | 2007-10-17 | 华为技术有限公司 | 通过sip注册请求创建隐式订阅的方法 |
US20090190577A1 (en) * | 2008-01-28 | 2009-07-30 | Research In Motion Corporation | Providing Session Initiation Protocol Request Contents Method and System |
CN110247900A (zh) * | 2019-05-29 | 2019-09-17 | 金华诺普视信息技术研究所有限公司 | 将sip监控平台的实时视频存入onvif存储设备的智能网关 |
-
2021
- 2021-01-25 CN CN202110095588.3A patent/CN112804338A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101056304A (zh) * | 2006-04-17 | 2007-10-17 | 华为技术有限公司 | 通过sip注册请求创建隐式订阅的方法 |
US20090190577A1 (en) * | 2008-01-28 | 2009-07-30 | Research In Motion Corporation | Providing Session Initiation Protocol Request Contents Method and System |
CN110247900A (zh) * | 2019-05-29 | 2019-09-17 | 金华诺普视信息技术研究所有限公司 | 将sip监控平台的实时视频存入onvif存储设备的智能网关 |
Non-Patent Citations (1)
Title |
---|
信东东: "基于微信的空调控制系统的设计和实现", 《中国优秀硕士学位论文》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113038090A (zh) * | 2021-05-24 | 2021-06-25 | 武汉中科通达高新技术股份有限公司 | 一种传输链路管理方法和系统 |
CN113848838A (zh) * | 2021-10-08 | 2021-12-28 | 南京工程学院 | 一种工业物联网的数据通信系统、方法 |
CN114143291A (zh) * | 2021-11-18 | 2022-03-04 | 广西北投信创科技投资集团有限公司 | 一种基于tcp和udp的http通信方法及其系统 |
CN114338094A (zh) * | 2021-12-09 | 2022-04-12 | 北京五八信息技术有限公司 | 请求头信息的采集方法、装置、电子设备及可读介质 |
CN114553948A (zh) * | 2022-02-11 | 2022-05-27 | 支付宝(杭州)信息技术有限公司 | 服务处理方法及装置 |
CN114500100A (zh) * | 2022-03-07 | 2022-05-13 | 南京甄视智能科技有限公司 | 一种基于ace架构的物联网设备接入系统及方法 |
CN116366472A (zh) * | 2023-04-11 | 2023-06-30 | 广东保伦电子股份有限公司 | 一种减少服务器转发压力的前端控制、服务器转发方法 |
CN116366472B (zh) * | 2023-04-11 | 2023-10-13 | 广东保伦电子股份有限公司 | 一种减少服务器转发压力的前端控制、服务器转发方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112804338A (zh) | 一种Web前端与物联网设备远程通信的方法 | |
US9973567B2 (en) | System and method for terminal management in a home network using a virtual client | |
US20060153072A1 (en) | Extending universal plug and play messaging beyond a local area network | |
KR100978336B1 (ko) | 리모트 액세스 | |
CN113411215B (zh) | 基于opc ua的时间敏感网络集中用户配置方法及系统 | |
US9998543B2 (en) | Remote monitoring of user appliances | |
US8526352B2 (en) | Method of controlling an entity of a remote network from a local network | |
US20180295190A1 (en) | Communication sessions at a coap protocol layer | |
KR101002842B1 (ko) | I m p s 시스템과 s i m p l e i m 시스템의 연동 시스템에서 그룹 관리 방법 | |
US20110047261A1 (en) | Information communication apparatus, information communication method, and program | |
CN102209119A (zh) | 维持会话连接 | |
CN114567620B (zh) | 一种基于mqtt协议的数字模型与物理设备匹配的系统及方法 | |
Klauck et al. | Chatty things-Making the Internet of Things readily usable for the masses with XMPP | |
KR102025631B1 (ko) | Non-TCP/IP 기반의 네트워크상의 IoT 기기와 oneM2M 표준 기반의 IoT 서버 상호간을 중계하는 게이트웨이 서버 및 그 동작 방법 | |
CN102598637B (zh) | 通信系统 | |
US10204098B2 (en) | Method and system to communicate between devices through natural language using instant messaging applications and interoperable public identifiers | |
US20070130312A1 (en) | Web service provision apparatus and method and web service request apparatus and method | |
Cui et al. | Research and Implementation of WEBRTC Signaling via websocket-based for real-time multimedia communications | |
US20100049804A1 (en) | Instant Messaging | |
Pierleoni et al. | A cross-protocol proxy for sensor networks based on CoAP | |
EP1439683B1 (en) | Internet appliance proxy protocol to support location-based services | |
Klauck | Seamless integration of smart objects into the internet using XMPP and mDNS/DNS-SD | |
KR100889732B1 (ko) | 개방형 서비스 게이트웨이를 사용하는 어플리케이션 서버의통지 수신 방법 | |
Chen et al. | Integrating service discovery technologies in OSGi platform | |
Mohiuddin et al. | 6LoWPAN based service discovery and RESTful web accessibility for Internet of Things |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210514 |