基于HTTP协议的客户端与服务器之间的数据交互方法与流程

文档序号:12822395阅读:2205来源:国知局
基于HTTP协议的客户端与服务器之间的数据交互方法与流程

本发明涉及一种基于http协议的客户端与服务器之间的数据交互方法。



背景技术:

智能手机的迅速普及,与人们的实用需求是分不开的。用户体验作为人们针对使用或期望使用的产品、系统或者服务的认知印象和回应,是用户的纯主观感受,但用户体验同样注重实际应用效果。智能家居是科技创新和人们需求的产物,作为一个系统、一个平台,无论是使用环境,抑或是家居生活产品,都是以用户的实际需求为出发点和落脚点,因而用户体验是一个无法回避的话题。客户端应用程序不仅要方便简洁,使用户能够一目了然,更重要的是用户执行了控制操作之后,能够及时得到反馈,以实时地了解自己已经操作成功。客户端应用程序应该允许用户实时地了解当前什么设备处于什么状态,并在运行过程中降低客户端与云服务端的相互影响。

智能家居系统都需要与用户进行形象化的交互,因此,用户的应用程序与服务器的交互必不可免。传统的应用程序与智能家居系统之间的连接基于tcp协议,即,应用程序基于tcp协议与服务器保持长连接,让用户能够在应用程序上直接看到当前的设备状态。上述的应用程序与服务器之间基于tcp协保持长连接的功能实现如图3所示,具体包括如下步骤:

步骤一:采用tcp协议,用户的应用程序端相当于客户端,云服务相当于服务器端。当应用程序主动向云服务获取设备状态时,首先需要在客户端与服务器之间建立一个连接用于发送数据。

步骤二:客户端与服务器之间建立连接时,需要客户端和云服务总共发送三个数据包,就是所谓的三次握手。三次握手的目的是连接服务器指定端口,建立tcp连接,并同步连接双方的序列号和确认号并交换tcp窗口大小信息。在socket编程中,客户端执行connect()时将触发三次握手。

步骤三:当完成三次握手,应用程序就可以与云服务相互发送数据信息,应用程序发送获取设备状态或控制设备状态的数据请求/控制信息,云服务收到客户端发送的数据,及时做出处理,并回馈设备信息。

步骤四:tcp为云服务提供报活功能,云服务会一直保持长连接。如果一个给定的连接在两小时内没有任何的动作,云服务就向客户端发一个探测报文段,从而保证客户端与云服务之间连接的存活。

步骤五:只有当客户端的连接请求的进程被杀死或者用户关闭了应用程序,云服务的探测报文在长时间无法收到回馈消息时,云服务执行tcp四次挥手主动断开该连接。

上述的基于tcp长连接的应用程序访问云服务获取/控制设备的实现方案,会降低云服务的吞吐量,且不能将云服务与客户端很好的分层独立起来,云服务需要保持每一个客户端的连接,增加了云服务的损耗。当客户端越来越多的时候,云服务的压力越来越大。另外,客户端的性能严重影响云云服务,使云端服务受用户应用程序的限制。



技术实现要素:

本发明实施例的目的在于提供一种基于http协议的客户端与服务器之间的数据交互方法,用于解决上述技术问题。

一种基于http协议的客户端与服务器之间的数据交互方法,应用于智能家居系统中,以使用户的客户端与智能家居系统的服务器之间建立稳定的网络连接并进行数据交互。所述方法包括步骤:所述客户端与所述服务器之间相互发送数据包,建立所述客户端与所述服务器之间的tcp连接;所述客户端通过http协议向所述服务器发送服务请求指令,所述服务器通过http协议回复所述客户端的请求;所述服务器主动断开tcp连接,并保持tcp连接处于打开状态;以及所述客户端与所述服务器之间采用http协议短连接进行数据交互。

在其中一种实施方式中,所述客户端向所述服务器发送的http请求报文包括请求头部、请求行以及请求数据。

在其中一种实施方式中,所述服务器主动断开tcp连接时,在其所发送的报文的请求头部信息中设置维持tcp连接为打开状态,使tcp连接在数据发送完毕之后仍然保持打开状态。

在其中一种实施方式中,所述请求头部包括头部字段名,所述请求行包括请求方法、url地址以及协议版本。

在其中一种实施方式中,所述客户端与所述服务器之间建立tcp连接时,所述客户端向所述服务器发送数据包后,所述服务器向所述客户端回复数据包,所述客户端再次向所述服务器发送数据包,所述tcp连接建立完成。

在其中一种实施方式中,所述客户端与所述服务器之间建立tcp连接时,同步双方的序列号和确认号,并交换tcp窗口大小信息。

在其中一种实施方式中,所述服务器与所述客户端之间共相互发送四次数据包完成断开连接。

在其中一种实施方式中,所述服务器主动断开tcp连接时,所述服务器向所述客户端发送数据包,所述客户端向所述服务器回复数据包后,所述客户端再次向所述服务器发送数据包,所述服务器再次向所述客户端回复数据包,完成断开连接。

在其中一种实施方式中,所述客户端与所述服务器进行数据交互时,若所述服务器收到智能家居系统的设备状态变化的信息,则主动将设备状态信息传送至所述客户端。

在其中一种实施方式中,所述服务器通过第三方推送平台将设备状态信息推送至所述客户端。

相对于现有技术,本发明实施例提供的基于http协议的客户端与服务器之间的数据交互方法中,所述客户端与所述服务器首先采用tcp协议建立连接,以保证连接的稳定性。然后采用http协议短连接,确保客户端与服务器直接数据交互完成之后能够及时断开连接,降低服务器的资源损耗。在所述客户端与所述服务器进行数据交互时,采用短连接,使所述服务器与所述客户端的分层结构更加明显,降低两者之间的相互影响。同时,使用http协议进行数据传输,增加了数据传输效率,避免所述服务器为长连接的存活一直占用资源。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于http协议的客户端与服务器之间的数据交互方法的流程示意图;

图2是本发明实施例提供的http协议请求报文的结构示意图。

图3是背景技术的基于tcp协议的客户端与服务器之间的数据交互方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施方式提供一种基于http协议的客户端与服务器之间的数据交互方法,该数据交互方法应用于智能家居系统中,使用户的客户端与智能家居系统的服务器之间建立稳定的网络连接并进行数据交互,以允许用户能够从客户端上实时地掌握智能家居的设备信息。

在本发明实施方式中,用户通过安装在客户端的应用程序与所述服务器进行交互,所述客户端为具有网络通信功能的便携式电子装置,所述客户端包括但不限于手机、平板电脑、智能手表等。在本发明实施方式中,所述服务器为部署在云端的云服务器,所述客户端通过无线网络连接至云服务器,并与云服务器进行数据交互。

请参阅图1,上述的基于http协议的客户端与服务器之间的数据交互方法包括以下步骤:

步骤一:客户端与服务器之间相互发送数据包,建立所述客户端与所述服务器之间的tcp连接。当客户端的应用程序主动向服务器获取设备状态时,首先需要在所述客户端与所述服务器之间建立一个连接用于发送数据。在本实施方式中,所述客户端与所述服务器之间建立连接时,采用tcp协议。所述客户端上的应用程序向所述服务器发送数据包后,所述服务器向所述客户端回复数据包,所述客户端再次向所述服务器发送数据包,完成“三次握手”,建立数据连接。“三次握手”的目的是使所述客户端连接所述服务器指定的端口,以便在所述客户端与所述服务器之间建立tcp连接,并同步连接双方的序列号和确认号,交换tcp窗口大小信息。具体在本发明实施方式中,在socket编程中,客户端执行connect()时,将触发“三次握手”。

步骤二:客户端使用http协议向服务器发送服务请求指令。具体地,在本实施方式中,所述客户端采用post/get方法向所述服务器发送服务请求指令。

进一步地,请同时参阅图2,所述客户端向所述服务器发送的http请求的报文包括请求头部、请求行以及请求数据。其中,请求头部包括头部字段名,请求行包括请求方法、url地址以及协议版本。

步骤三:服务器通过http协议回复客户端的请求。具体地,当所述服务器收到所述客户端的请求指令时,通过http协议回复所述客户端的请求,完成点对点的请求。

步骤四:服务器主动断开tcp连接。具体地,所述服务器向所述客户端发送数据包,所述客户端向所述服务器回复数据包后,所述客户端再次向所述服务器发送数据包,所述服务器再次向所述客户端回复数据包,完成“四次挥手”,所述服务器主动断开tcp连接。

进一步地,具体在本实施方式中,所述服务器在所发送的报文的请求头部信息中加入connection:keep-alive,使tcp连接在数据发送完毕之后仍然保持打开状态,缩短了下一次连接建立的时间,节约了网络带宽。

步骤五:客户端与服务器进行数据交互。具体地,客户端与服务器之间采用http协议无响应短连接进行数据交互。在本发明实施方式中,所述客户端的请求得到所述服务器的回复之后,显示智能家居系统的当前设备状态,所述服务器收到设备状态变化的信息之后,主动将设备状态信息通过第三方推送平台推送至所述客户端,所述客户端接收到消息之后改变设备状态信息,从而能够保证用户应用程序的实时性。可以理解的是,所述第三方推送平台可以采用极光推送、百度推送等云推送平台。

本发明实施例提供的基于http协议的客户端与服务器之间的数据交互方法中,所述客户端与所述服务器首先采用tcp协议建立连接,以保证连接的稳定性。然后采用http协议无响应短连接,确保客户端与服务器直接数据交互完成之后能够及时断开连接,降低服务器的资源损耗。在所述客户端与所述服务器进行数据交互时,采用短连接,使所述服务器与所述客户端的分层结构更加明显,降低两者之间的相互影响。同时,使用http协议进行数据传输,增加了数据传输效率,避免所述服务器为长连接的存活一直占用资源。另外,在智能家居的设备状态更新时,所述服务器使用第三方推送平台推送设备状态信息,避免了所述客户端与所述服务器保持长连接,且能够及时将设备状态信息发送到所述客户端。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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