基于HTTP连接的双向通讯设备、系统和方法与流程

文档序号:20123481发布日期:2020-03-20 05:59阅读:547来源:国知局
基于HTTP连接的双向通讯设备、系统和方法与流程

本发明涉及物联网通讯领域,更具体地说,涉及一种基于http连接的双向通讯设备、系统和方法。



背景技术:

随着物联网的发展,物品与物品之间的信息交换和通信也越来越普遍。对于相互通信的设备而言,通常控制命令都是用基于二级制的自定义协议或者基于http单连接的控制协议。自定义的协议的主要缺点是和已有的协议不兼容,无法通过浏览器等现成的程序控制,且开发难度大,易出错。另一方面http连接的控制方式虽然解决了兼容及浏览器控制的问题,但是由于http协议中必须由客户端发起请求,服务器应答,服务器无法主动发起请求的限制,导致基于http协议连接的服务器无法主动推送状态或发送命令给客户端。客户端必须时刻不停得发送请求向服务器查询服务器状态,才能完成获取服务器信息采取进一步的操作。此类请求方法严重影响客户端的工作效率。



技术实现要素:

针对现有技术存在的问题,本发明提供一种基于http连接的双向通讯设备、系统和方法。

本发明解决上述技术问题所采用的技术方案是:提供一种通讯设备,包括控制器,所述控制器用于向另一通讯设备发起http连接请求,并在与所述另一通讯设备建立http连接链路后,接收所述另一通讯设备的http连接请求,与所述另一通讯设备建立反向http连接链路。

本发明还提供有一种通讯设备,包括控制器,所述控制器用于接收另一通讯设备http连接请求,并在与所述另一通讯设备建立http连接链路后,向所述另一通讯设备发起http连接请求,与所述另一通讯设备建立反向http连接链路。

本发明还提供有一种基于http连接的双向通讯系统,包括第一通讯设备、第二通讯设备,在所述第一通讯设备与所述第二通讯设备之间建立有http连接链路以及反向http连接链路;

在所述http连接链路中,所述第一通讯设备为客户端,所述第二通讯设备为服务器;

在所述反向http连接链路中,所述第二通讯设备为客户端,所述第一通讯设备为服务器。

优选地,所述反向http连接链路的建立包括以下步骤:

第一通讯设备向第二通讯设备发送连接请求,进入等待状态,等待第二通讯设备确认;

第二通讯设备收到来自第一通讯设备的连接请求,向第一通讯设备发送确认信息,进入等待状态,等待第一通讯设备回复;

第一通讯设备收到来自第二通讯设备的确认信息,向第二通讯设备回复确认信息,建立连接;

第二通讯设备收到来自第一通讯设备的回复确认信息,建立连接;

第一通讯设备向第二通讯设备发送反向指令;

第二通讯设备接收所述反向指令。

优选地,所述反向http连接链路的建立包括以下步骤:

第二通讯设备向第一通讯设备发送连接请求,进入等待状态,等待第一通讯设备确认;

第一通讯设备收到来自第二通讯设备的连接请求,向第二通讯设备发送确认信息,进入等待状态,等待第二通讯设备回复;

第二通讯设备收到来自第一通讯设备的确认信息,向第一通讯设备回复确认信息,建立连接;

第一通讯设备收到来自第二通讯设备的回复确认信息,建立连接。

优选地,在所述http连接链路中,第二通讯设备采用第二通讯设备主机端口监听第一通讯设备向第二通讯设备发送的请求;在所述反向http连接链路中,第一通讯设备采用第一通讯设备主机端口监听第二通讯设备向第一通讯设备发送的请求。

优选地,所述第一通讯设备向第二通讯设备发送的请求包括指令信息,所述第二通讯设备根据所述指令信息运行。

优选地,所述第二通讯设备向第一通讯设备发送的请求包括设备信息、状态信息。

本发明还提供一种建立双向通讯系统的方法,包括以下步骤:

第一通讯设备向第二通讯设备主动发起http连接请求;

第二通讯设备接收连接请求与第一通讯设备建立http连接;

第一通讯设备再次向第二通讯设备主动发起http连接请求和针对此请求的反向指令;

第二通讯设备接收连接请求和反向指令与第一通讯设备建立反向http连接。

本发明还提供一种建立双向通讯系统的方法,包括以下步骤:

第一通讯设备向第二通讯设备主动发起http连接请求;

第二通讯设备接收连接请求与第一通讯设备建立http连接;

第二通讯设备向第一通讯设备主动发起http连接请求;

第一通讯设备接收连接请求与第二通讯设备建立反向http连接。

通过上述通讯设备、系统和方法,需要通讯的两个设备之间可以建立两个http连接,基于双http连接,需要通讯的设备同时作为客户端和服务器,双方均可以主动向对方发送请求,改变了其中一个设备只能充当客户端,持续向服务器发送请求的低效通讯模式。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为基于http连接的双向通讯系统示意图;

图2为建立双向通讯系统方法一种实施例的流程图;

图3为建立双向通讯系统方法另一种实施例的流程图。

具体实施方式

下面,参照附图对本发明的基于http连接的双向通讯设备、系统及方法进行说明。

通常,基于http通信的两个节点不能实现实时双向通讯,默认设定客户端向服务器实时发送数据请求,并实时接收服务器反馈的数据,而服务器则不能够实时发送对客户端的请求命令获取客户端的信息,只能接收客户端发送的数据请求。在客户端需要实时了解服务器的状态的情况下,客户端需要一直发送请求数据,服务器接收请求,再根据请求命令调用相关数据,再将相关数据发送到客户端。这极大得影响了客户端的工作效率。所以需在默认客户端向服务器发送请求的基础上,建立反向的http连接,即作为服务器的设备主动向作为客户端的设备发送请求。

本发明提供一种通讯设备,包括控制器,控制器用于向另一通讯设备发起http连接请求,并在与另一通讯设备建立http连接链路后,接收另一通讯设备的http连接请求,与另一通讯设备建立反向http连接链路。

本发明还提供一种通讯设备,包括控制器,控制器用于接收另一通讯设备http连接请求,并在与另一通讯设备建立http连接链路后,向另一通讯设备发起http连接请求,与另一通讯设备建立反向http连接链路。

具体的,http连接是建立在tcp协议之上的一种应用。在http连接链路与反向http连接链路中,主动发起请求为客户端,接收请求的为服务器。客户端与服务器之间建立tcp连接的具体步骤如下:

a1:客户端发送syn包到服务器,并进入syn_send(syn=j)状态,等待服务器确认;

a2:服务器接收到syn包,必须发送确认客户端的syn的回复ack(ack=j+1),同时自己生成一个syn包(syn=k),即向客户端回复syn+ack包,服务器完成发送后进入syn_recv状态;

a3:客户端接收服务器回复的syn+ack包,并向服务器发送确认包ack(ack=k+1),进入established状态;

a4:服务器接收到客户端发回的ack确认包,进入established状态;

a5:服务器使用默认端口监听来自客户端的http请求。

上述发送包中的数值等于发送方的发送序号+1,即接收方期望接收的下一个序列号。客户端相应的状态变化为:closed->syn-sent->eatablished,

服务器相应的状态变化为::closed->listen->syn-rcvd->eatablished。其中各状态的含义为:listen-侦听来自远方的tcp端口的连接请求,syn-sent-在发送连接请求后等待匹配的连接请求;syn-rcvd-收到和发送一个连接请求后等待对连接请求的确认;eatablished代表一个打开的连接,可以进行数据传输;closed-无任何连接状态。

依据上述步骤建立双向通讯的两个通讯设备中,每个通讯设备既为客户端又为服务器。每个设备均可向对方实时发送请求,实现实时双向通信。在http连接链路与反向http连接链路中客户端与相应服务器之间的通讯方式如下:

b1:客户端经由与tcp连接相关联的,用于标识客户端请求的服务器和服务器的本地套接字(源ip地址和目的ip地址、源端口号和目的端口号的组合)发出包含路径名的http请求消息,如get请求或connect请求。

b2:服务器经由与tcp连接相关联的本地套接字接收客户端发出的请求消息,并根据此消息从服务器主机内存或硬盘中取出对象,再经由同一个套接字,发出包含该对象的响应消息。

b3:客户端经由同一个套接字接收服务器发出的响应消息。

实施本发明的通讯设备,需要通讯的两个设备之间可以建立两个http连接,基于双http连接,需要通讯的设备同时作为客户端和服务器,双方均可以主动向对方发送请求,改变了其中一个设备只能充当客户端,持续向服务器发送请求的低效通讯模式。

本发明还提供一种基于http连接的双向通讯系统,具体的,该双向通讯系统包括第一通讯设备、第二通讯设备,在第一通讯设备与第二通讯设备之间建立有http连接链路以及反向http连接链路;在http连接链路中,第一通讯设备为客户端,第二通讯设备为服务器;在反向http连接链路中,第二通讯设备为客户端,第一通讯设备为服务器。

该双向通讯系统的http连接链路的建立包括以下步骤:

第一通讯设备向第二通讯设备发送连接请求,进入等待状态,等待第二通讯设备确认;

第二通讯设备收到来自第一讯设备的连接请求,向第一通讯设备发送确认信息,进入等待状态,等待第二通讯设备回复;

第一通讯设备收到来自第二通讯设备的确认信息,向第二通讯设备回复确认信息,建立连接;

第二通讯设备收到来自第一通讯设备的回复确认信息,建立连接。

该双向通讯系统的反向http连接链路建立的第一实施例包括以下步骤:

第二通讯设备向第一通讯设备发送连接请求,进入等待状态,等待第一通讯设备确认;

第一通讯设备收到来自第二通讯设备的连接请求,向第二通讯设备发送确认信息,进入等待状态,等待第二通讯设备回复;

第二通讯设备收到来自第一通讯设备的确认信息,向第一通讯设备回复确认信息,建立连接;

第一通讯设备收到来自第二通讯设备的回复确认信息,建立连接。

具体的,上述http连接链路与反向http连接链路中第一通讯设备与第二通讯设备建立tcp连接的步骤与上述步骤a1~a5中客户端与服务器的连接步骤相同。

该双向通讯系统的反向http连接链路建立的第二实施例包括以下步骤:

第一通讯设备向第二通讯设备发送连接请求,进入等待状态,等待第二通讯设备确认;

第二通讯设备收到来自第一通讯设备的连接请求,向第一通讯设备发送确认信息,进入等待状态,等待第一通讯设备回复;

第一通讯设备收到来自第二通讯设备的确认信息,向第二通讯设备回复确认信息,建立连接;

第二通讯设备收到来自第一通讯设备的回复确认信息,建立连接;

第一通讯设备向第二通讯设备发送反向指令;

第二通讯设备接收反向指令。

具体的,上述反向http连接链路建立的第二实施例中第一通讯设备与第二通讯设备的建立连接的过程与上述步骤a1~a5中客户端与服务器连接过程略有不同,具体实施步骤如下:

c1:客户端发送syn包到服务器,并进入syn_send(syn=i)状态,等待服务器确认;

c2:服务器接收到syn包,必须发送确认客户端的syn的回复ack(ack=i+1),同时自己生成一个syn包(syn=l),即向客户端回复syn+ack包,服务器完成发送后进入syn_recv状态;

c3:客户端接收服务器回复的syn+ack包,并向服务器发送确认包ack(ack=l+1),进入established状态;

c4:服务器接收到客户端发回的ack确认包,进入established状态;

c5:客户端向服务器发送reverse反向指令;

c6:服务器接收reverse反向指令;

c7:客户端使用默认端口监听来自服务器的http请求,即客户端作为服务器,服务器作为客户端。

上述双向通讯系统中,在http连接链路中,第一通讯设备为客户端,第二通讯设备为服务器。第二通讯设备采用第二通讯设备主机端口监听第一通讯设备向第二通讯设备发送的请求。在反向http连接链路中,第一通讯设备为服务器,第二通讯设备为客户端。第一通讯设备采用第一通讯设备主机端口监听第二通讯设备向第一通讯设备发送的请求。在http连接链路与反向http连接链路中客户端与相应服务器之间的具体通讯方式与上述步骤b1~b3相同。

进一步地,第一通讯设备向第二通讯设备发送的请求包括指令信息,第二通讯设备根据指令信息运行。

进一步地,第二通讯设备向第一通讯设备发送的请求包括设备信息、状态信息。

通过上述通讯系统,需要通讯的两个设备之间可以建立两个http连接,基于双http连接,需要通讯的设备同时作为客户端和服务器,双方均可以主动向对方发送请求,改变了其中一个设备只能充当客户端,持续向服务器发送请求的低效通讯模式。

如图2所示,根据上述双向通讯系统的建立过程,本发明还提供一种建立双向通讯系统的方法,包括以下步骤:

s11:第一通讯设备向第二通讯设备主动发起http连接请求;

s12:第二通讯设备接收连接请求与第一通讯设备建立http连接;

s13:第一通讯设备再次向第二通讯设备主动发起http连接请求和针对此请求的反向指令;

s14:第二通讯设备接收连接请求和反向指令与第一通讯设备建立反向http连接。

如图3所示,根据上述双向通讯系统的建立过程,本发明还提供一种建立双向通讯系统的方法,包括以下步骤:

s21:第一通讯设备向第二通讯设备主动发起http连接请求;

s22:第二通讯设备接收连接请求与第一通讯设备建立http连接;

s23:第二通讯设备向第一通讯设备主动发起http连接请求;

s24:第一通讯设备接收连接请求与第二通讯设备建立反向http连接。

通过上述建立双向通讯系统的方法,需要通讯的两个设备之间可以建立两个http连接,基于双http连接,需要通讯的设备同时作为客户端和服务器,双方均可以主动向对方发送请求,改变了其中一个设备只能充当客户端,持续向服务器发送请求的低效通讯模式。

下面以手机与智能音箱的通讯为例介绍双向通讯方法。假设手机的ip地址为192.168.1.200,智能音箱的ip地址为192.168.1.100。手机与音箱通过无线局域网络连接到互联网。用户在手机浏览器中输入包含路径的http请求消息:http://192.168.1.100/connect,浏览器获得ip地址后,向智能音箱发起http连接,手机与智能音箱之间建立http连接,基于http连接手机作为客户端,智能音箱作为服务器,智能音箱监听来自手机的请求消息。用户再次在手机浏览器中输入包含路径的http请求消息:http://192.168.1.100/reverse。浏览器获得ip地址后,发起反向http连接,手机与智能音箱之间建立反向http连接。基于反向http连接,音箱作为客户端,手机作为服务器,手机监听来自智能音箱的请求消息。

以上两个连接建立以后,手机通过http连接向智能音箱发送请求:http://192.168.1.100/play/song/1000,此命令的含义为:手机通知音箱开始播放id为1000的歌曲。智能音箱接收到手机发出的命令请求并执行命令,播放id为1000的歌曲。

当手机需要知道智能音箱是否已经播放该歌曲时,无需再次向智能音箱发送请求,并等待接收智能音箱识别请求并反馈报告。智能音箱在执行命令后,即开始播放id为1000的歌曲后。由于已经在手机和智能音箱之间建立了反向http连接,手机采用默认端口监听来自智能音箱的请求。所以智能音箱通过反向http连接向手机主动发送请求:http://192.168.1.200/onplay/song/1000,来通知手机,智能音箱正在播放。手机通过反向http连接接收智能音箱主动发出的请求信息并显示对应的播放信息。

通过上述通讯方法,需要通讯的两个设备之间可以建立两个http连接,基于双http连接,需要通讯的设备同时作为客户端和服务器,双方均可以主动向对方发送请求,改变了其中一个设备只能充当客户端,持续向服务器发送请求的低效通讯模式。

可以理解的,以上实施例仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制;应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,可以对上述技术特点进行自由组合,还可以做出若干变形和改进,这些都属于本发明的保护范围;因此,凡跟本发明权利要求范围所做的等同变换与修饰,均应属于本发明权利要求的涵盖范围。

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