具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为基于浏览器的遥控方法第一实施例的流程示意图。该基于浏览器的遥控方法,包括步骤102、步骤104和步骤106,具体如下:
步骤102,浏览器与应用服务器建立网页套接字连接。
如图2所示,为第一实施例中步骤102的具体流程示意图,包括步骤202和步骤204,具体如下:
步骤202,该浏览器获取遥控网页,并根据该遥控网页向该应用服务器发起超文本传输协议请求。
具体的,该浏览器从本地或从网页服务器获取遥控网页。本地是指浏览器所在的终端上。该终端可为手机、笔记本电脑、平板电脑、台式电脑、MP4、个人数字助理等。该浏览器是支持Web Socket(网页套接字)的。
浏览器获取用户输入的网页地址或控制对象,根据输入的网页地址或控制对象获取遥控网页。该控制对象可为基于物联网的各种遥控设备,如电视机、空调、计算机等。
浏览器发起HTTP(Hype Text Transfer Protocol,超文本传输协议)请求连接应用服务器,请求HTTP Upgrade。
步骤204,该浏览器接收该应用服务器根据该超文本传输协议请求的响应,将该超文本传输协议升级为网页套接字协议,根据该网页套接字协议与该应用服务器建立网页套接字连接。
具体的,浏览器将HTTP协议升级为Web Socket协议,向应用服务器发起WebSocket握手连接。
浏览器与应用服务器建立Web Socket连接后,可进行全双工通信。浏览器与应用服务器采用长连接,保证传输的及时性并能保证长时间的传输数据不被中断。
步骤104,该浏览器向该应用服务器发送数据包套接字组包。
具体的,该浏览器以UDP(User Datagram Protocol,用户数据包协议)方式或TCP(Transmission Control Protocol,传输控制协议)方式向该应用服务器发送数据包套接字组包。通过UDP方式发送数据包套接字组包,收发消息及时,网络消耗小。采用TCP方式发送数据包,可支持长时间的数据流传送。此外,为了保证数据传输的安全性,可采用加密的Web Socket协议,即WSS协议。
浏览器发送数据报Web Socket传送数据包套接字组包(即UDP方式),或者发送流式Web Socket传送数据包套接字组包(即TCP方式)。如表1所示,数据包套接字组包(GroupPacket,简称GP)包括包头、数据包和包尾;该包头包括组包头标示符、命令类型、命令参数和包大小;该包尾包括校验码和包尾标示符。如表2所示,该数据包(Data Packet,简称DP)的命令模式包括命令和参数。
表1
表2
数据包数量可以为零。数据包可以按照顺序分批传送,但单个数据包不可拆分。
此外,在对终端进行开机、关机或待机等控制时,数据包套接字组包可仅包括包头和包尾。例如将关机命令的GP包在浏览器所在的终端打包,其中,关机命令shutdown,命令参数-f,分别装入命令类型和命令参数部分,计算包大小和校验码后,添加头尾标示符,即可组装成一个GP包。一个DP包含命令和若干参数,一个GP可包含若干个DP,该若干个DP包装在一个GP中一起发送;若干个DP也可分别被打包仅不同的GP包,该若干个DP通过GP包的命令参数进行控制。
步骤106,该浏览器接收该应用服务器反馈的执行结果;其中,该执行结果为该应用服务器解析该数据包套接字组包得到遥控命令并执行该遥控命令而得到的执行结果。
本实施例中,应用服务器采用CC(Command Controlling Protocol,命令控制协议)对遥控命令进行解析、执行、反馈和控制参数等。具体的,应用服务器接收数据包套接字组包后,进行解析得到遥控命令。该遥控命令为多个时,遥控命令排成队列。应用服务器执行多个遥控命令时,默认按照队列顺序执行,每次只执行一个遥控命令。应用服务器每执行一个遥控命令得到一个执行结果及相应的反馈值,将上一条遥控命令执行的反馈值作为本次遥控命令的参数,根据本次遥控命令的参数以及预先设置数据包套接字组包中包头的命令参数执行本次遥控命令,得到本次遥控命令的执行结果,将执行结果返回给浏览器。该预设的命令参数可为允许容错或不允许容错。当命令参数为不允许容错时,上一条遥控命令执行返回TRUE,下一条命令继续执行,否则此遥控命令队列中断。当命令参数为允许容错时,上一条遥控命令执行返回错误时,应用服务器可跳过执行不成功的遥控命令,继续执行下一条遥控命令。
此外,上述基于浏览器的遥控方法,还包括:浏览器接收用户输入的撤销执行某条遥控命令的请求,并发送给应用服务器,该应用服务器根据该撤销执行某条遥控命令的请求撤销对应的遥控命令。
上述基于浏览器的遥控方法,还包括:通过浏览器显示执行结果。方便时刻观测遥控命令的执行情况。
上述基于浏览器的遥控方法,通过浏览器与应用服务器建立网页套接字连接,通过浏览器发送数据包套接字组包,应用服务器解析得到相应遥控命令,执行该遥控命令从而控制所需控制对象,不需下载控制对象所需的软件安装包并进行安装,操作简单,且将执行结果返回给浏览器,可有效的观测遥控命令执行情况。另外,能兼容所有带有浏览器的联网设备,不需安装配置,显示效果好,实现同步更新,开发周期短、成本低。
如图3所示,为基于浏览器的遥控方法第二实施例的流程示意图。该基于浏览器的遥控方法从应用服务器侧描述。该基于浏览器的遥控方法,包括:
步骤302,应用服务器与浏览器建立网页套接字连接。
本实施例中,该应用服务器接收该浏览器发送的超文本传输协议请求,并响应,以及接收该浏览器将该超文本传输协议升级为网页套接字协议后发送的建立网页套接字连接请求,与浏览器建立网页套接字连接。
步骤304,该应用服务器接收该浏览器发送的数据包套接字组包,并分析该数据包套接字组包得到遥控命令,执行该遥控命令得到相应的执行结果,并将该执行结果返回给该浏览器。
该数据包套接字组包包括包头、数据包和包尾;该包头包括组包头标示符、命令类型、命令参数和包大小;该包尾包括校验码和包尾标示符;该数据包包括命令和参数。
应用服务器将通过Web Socket协议监听UDP端口获取浏览器发送的GP包,得到GP包后,截取包头的命令类型和命令参数,以及解析DP得到执行的遥控命令,存在多个DP时,将得到多个遥控命令,将多个遥控命令存入一个队列中等待执行。
步骤304包括:该应用服务器接收该浏览器发送的数据包套接字组包,并分析该数据包套接字组包得到多个遥控命令,按照顺序执行该多个遥控命令,并将上一条遥控命令执行的反馈值作为本次遥控命令的参数,根据该参数以及预先设置的命令参数执行本次遥控命令,得到本次遥控命令的执行结果,将执行结果返回给浏览器。
具体的,应用服务器接收数据包套接字组包后,进行解析得到遥控命令。该遥控命令为多个时,遥控命令排成队列。应用服务器执行多个遥控命令时,默认按照队列顺序执行,每次只执行一个遥控命令。应用服务器每执行一个遥控命令得到一个执行结果及相应的反馈值,将上一条遥控命令执行的反馈值作为本次遥控命令的参数,根据该参数以及预先设置的命令参数执行本次遥控命令,得到本次遥控命令的执行结果,将执行结果返回给浏览器。该预设的命令参数可为允许容错或不允许容错。当命令参数为不允许容错时,上一条遥控命令执行返回TRUE,下一条命令继续执行,否则此遥控命令队列中断。当命令参数为允许容错时,上一条遥控命令执行返回错误时,应用服务器可跳过执行不成功的遥控命令,继续执行下一条遥控命令。
应用服务器将执行结果返回给浏览器可以将执行结果打包成一个GP发给浏览器,发送过程同样采用Web Socket协议的UDP方式或TCP方式。该GP包中DP主要包括数据,该DP的数据模式定义如表3所示。
表3
应用服务器还可采用间隔预设时间筛选执行结果,并将该执行结果打包成GP发送给浏览器所在的终端。
上述基于浏览器的遥控方法,通过浏览器与应用服务器建立网页套接字连接,通过浏览器发送数据包套接字组包,应用服务器解析得到相应遥控命令,执行该遥控命令从而控制所需控制对象,不需下载控制对象所需的软件安装包并进行安装,操作简单,且将执行结果返回给浏览器,可有效的观测遥控命令执行情况。
如图4所示,为基于浏览器的遥控方法第三实施例流程示意图。该基于浏览器的遥控方法从浏览器、网页服务器和应用服务器的交互进行描述,具体包括:
步骤401,浏览器向网页服务器通过超文本传输协议获取遥控网页。
具体的,网页服务器能提供遥控网页的HTML(Hyper Text Markup Language,超文本标记语言)页面和CSS(Cascading Style Sheets,层叠样式表)格式文件,提供javascrip脚本对Web Socket的支持,可对访问遥控网页的用户进行登记、信息验证等。
步骤402,网页服务器返回遥控网页给浏览器。
步骤403,浏览器向应用服务器发起超文本传输协议连接请求,并在超文本传输协议连接请求时,请求超文本传输协议升级。
具体的,应用服务器提供对Web Socket的支持,并提供相应的通信端口。应用服务器可对通过浏览器登录的用户进行身份验证,验证通过后,才允许用户通过浏览器向应用服务器发送相应的命令。
步骤404,浏览器将超文本传输协议升级为Web Socket协议,再根据该Web Socket协议与应用服务器建立连接。
步骤405,浏览器向应用服务器发送数据包套接字组包。
该数据包套接字组包包括包头、数据包和包尾;该包头包括组包头标示符、命令类型、命令参数和包大小;该包尾包括校验码和包尾标示符;该数据包包括命令和参数。
步骤406,应用服务器接收数据包套接字组包,解析得到遥控命令,执行遥控命令,得到执行结果。
具体的,该应用服务器接收该浏览器发送的数据包套接字组包,并分析该数据包套接字组包得到多个遥控命令,按照顺序执行该多个遥控命令,并将上一条遥控命令执行的反馈值作为本次遥控命令的参数,根据该参数以及预先设置的命令参数执行本次遥控命令,得到本次遥控命令的执行结果。该预设的命令参数可为允许容错或不允许容错。当命令参数为不允许容错时,上一条遥控命令执行返回TRUE,下一条命令继续执行,否则此遥控命令队列中断。当命令参数为允许容错时,上一条遥控命令执行返回错误时,应用服务器可跳过执行不成功的遥控命令,继续执行下一条遥控命令。
步骤407,应用服务器将执行结果返回给浏览器。
应用服务器还可采用间隔预设时间筛选执行结果,并将该执行结果打包成GP发送给浏览器所在的终端。
上述基于浏览器的遥控方法,通过浏览器与应用服务器建立网页套接字连接,通过浏览器发送数据包套接字组包,应用服务器解析得到相应遥控命令,执行该遥控命令从而控制所需控制对象,不需下载控制对象所需的软件安装包并进行安装,操作简单,且将执行结果返回给浏览器,可有效的观测遥控命令执行情况。
以遥控电视为例,上述基于浏览器的遥控方法控制电视的过程为:
(1)打开浏览器,浏览器接收用户输入的电视名称,根据该电视名称从网页服务器或本地查找到相应的遥控网页。
(2)通过浏览器向应用服务器发送HTTP请求,并请求升级HTTP,将HTTP协议升级为Web Socket协议,再根据Web Socket协议与应用服务器建立Web Socket连接。
(3)通过浏览器向应用服务器发送包含遥控名称的数据包套接字组包。
(4)应用服务器对数据包套接字组包解析得到遥控命令,并执行遥控命令控制电视,并将执行结果返回给浏览器,在浏览器上显示。
此外,在完成控制后,可建立快捷方式,下次控制相同的电视时,不需在输入电视名称进行查找遥控页面,直接使用快捷方式即可得到遥控页面。
如图5所示,为一个实施例中浏览器的结构框图。该浏览器500,包括第一连接模块520、发送模块540和第一接收模块560。
其中,第一连接建立模块520用于建立浏览器与应用服务器之间的网页套接字连接。
发送模块540用于向该应用服务器发送数据包套接字组包。
具体的,该浏览器500的发送模块540以UDP(User Datagram Protocol,用户数据包协议)方式或TCP(Transmission Control Protocol,传输控制协议)方式向该应用服务器发送数据包套接字组包。通过UDP方式发送数据包套接字组包,收发消息及时,网络消耗小。采用TCP方式发送数据包,可支持长时间的数据流传送。此外,为了保证数据传输的安全性,可采用加密的Web Socket协议,即WSS协议。
浏览器500发送数据报Web Socket传送数据包套接字组包(即UDP方式),或者发送流式Web Socket传送数据包套接字组包(即TCP方式)。如表1所示,数据包套接字组包(Group Packet,简称GP)包括包头、数据包和包尾;该包头包括组包头标示符、命令类型、命令参数和包大小;该包尾包括校验码和包尾标示符。如表2所示,该数据包(Data Packet,简称DP)的命令模式包括命令和参数。此外,数据包套接字组包可仅包括包头和包尾。例如将关机命令的GP包在浏览器所在的终端打包,其中,关机命令shutdown,命令参数-f,分别装入命令类型和命令参数部分,计算包大小和校验码后,添加头尾标示符,即可组装成一个GP包。一个DP包含命令和若干参数,一个GP可包含若干个DP,该若干个DP包装在一个GP中一起发送;若干个DP也可分别被打包仅不同的GP包,该若干个DP通过GP包的命令参数进行控制。
第一接收模块560用于接收该应用服务器反馈的执行结果,该执行结果为该应用服务器解析该数据包套接字组包得到遥控命令,并执行该遥控命令而得到的相应的执行结果。
本实施例中,应用服务器采用CC(Command Controlling Protocol,命令控制协议)对遥控命令进行解析、执行、反馈和控制参数等。具体的,应用服务器接收数据包套接字组包后,进行解析得到遥控命令。该遥控命令为多个时,遥控命令排成队列。应用服务器执行多个遥控命令时,默认按照队列顺序执行,每次只执行一个遥控命令。应用服务器每执行一个遥控命令得到一个执行结果及相应的反馈值,将上一条遥控命令执行的反馈值作为本次遥控命令的参数,根据本次遥控命令的参数以及预先设置数据包套接字组包中包头的命令参数执行本次遥控命令,得到本次遥控命令的执行结果,将执行结果返回给浏览器。该预设的命令参数可为允许容错或不允许容错。当命令参数为不允许容错时,上一条遥控命令执行返回TRUE,下一条命令继续执行,否则此遥控命令队列中断。当命令参数为允许容错时,上一条遥控命令执行返回错误时,应用服务器可跳过执行不成功的遥控命令,继续执行下一条遥控命令。
上述浏览器,与应用服务器建立网页套接字连接,发送数据包套接字组包,应用服务器解析得到相应遥控命令,执行该遥控命令从而控制所需控制对象,不需下载控制对象所需的软件安装包并进行安装,操作简单,且将执行结果返回给浏览器,可有效第观测遥控命令执行情况。另外,能兼容所有带有浏览器的联网设备,不需安装配置,显示效果好,实现同步更新,开发周期短、成本低。
如图5所示,该浏览器500还包括获取模块510、请求发起模块512和升级模块514。
获取模块510用于获取遥控网页。具体的,该浏览器500的获取模块510从本地或从网页服务器获取遥控网页。本地是指浏览器所在的终端上。该终端可为手机、笔记本电脑、平板电脑、台式电脑、MP4、个人数字助理等。该浏览器是支持Web Socket(网页套接字)的。
浏览器500的获取模块510获取用户输入的网页地址或控制对象,根据输入的网页地址或控制对象获取遥控网页。该控制对象可为基于物联网的各种遥控设备,如电视机、空调、计算机等。
请求发起模块512用于根据该遥控网页向该应用服务器发起超文本传输协议请求。
该第一接收模块560用于接收该应用服务器根据该超文本传输协议请求的响应。
升级模块514用于将该超文本传输协议升级为网页套接字协议。
该连接建立模块520用于根据该网页套接字协议与该应用服务器建立网页套接字连接。
浏览器500与应用服务器建立Web Socket连接后,可进行全双工通信。浏览器与应用服务器采用长连接,保证传输的及时性并能保证长时间的传输数据不被中断。
如图6所示,为应用服务器实施例的结构框图。该应用服务器600,包括第二连接模块610、第二接收模块620、解析模块630、执行模块640和反馈模块650。其中:
第二连接建立模块610用于建立浏览器与应用服务器之间的网页套接字连接。本实施例中,该应用服务器接收该浏览器发送的超文本传输协议请求,并响应,以及接收该浏览器将该超文本传输协议升级为网页套接字协议后发送的建立网页套接字连接请求,与浏览器建立网页套接字连接。
第二接收模块620用于接收该浏览器发送的数据包套接字组包。
该数据包套接字组包包括包头、数据包和包尾;该包头包括组包头标示符、命令类型、命令参数和包大小;该包尾包括校验码和包尾标示符;该数据包包括命令和参数。应用服务器将通过Web Socket协议监听UDP端口获取浏览器发送的GP包,得到GP包后,截取包头的命令类型和命令参数,以及解析DP得到执行的遥控命令,存在多个DP时,将得到多个遥控命令,将多个遥控命令存入一个队列中等待执行。
解析模块630用于分析该数据包套接字组包得到遥控命令。
执行模块640用于执行该遥控命令得到相应的执行结果。
反馈模块650用于将该执行结果返回给该浏览器。
该解析模块630还用于分析该数据包套接字组包得到多个遥控命令。
该执行模块640还用于按照顺序执行该多个遥控命令,并将上一条遥控命令的执行结果作为本次遥控命令的参数,根据该参数以及预先设置的命令参数执行本次遥控命令。
该预设的命令参数可为允许容错或不允许容错。当命令参数为不允许容错时,上一条遥控命令执行返回TRUE,下一条命令继续执行,否则此遥控命令队列中断。当命令参数为允许容错时,上一条遥控命令执行返回错误时,应用服务器可跳过执行不成功的遥控命令,继续执行下一条遥控命令。
如图7所示,一种基于浏览器的遥控系统实施例,包括浏览器500、应用服务器600和网页服务器700。
浏览器500通过超文本传输协议向网页服务器700获取遥控网页。
具体的,网页服务器700能提供遥控网页的HTML(Hyper Text Markup Language,超文本标记语言)页面和CSS(Cascading Style Sheets,层叠样式表)格式文件,提供javascrip脚本对Web Socket的支持,可对访问遥控网页的用户进行登记、信息验证等。
网页服务器700返回遥控网页给浏览器500。
浏览器500向应用服务器600发起超文本传输协议连接请求,并在超文本传输协议连接请求时,请求超文本传输协议升级。
具体的,应用服务器600提供对Web Socket的支持,并提供相应的通信端口。应用服务器600可对通过浏览器500登录的用户进行身份验证,验证通过后,才允许用户通过浏览器500向应用服务器600发送相应的命令。
浏览器500将超文本传输协议升级为Web Socket协议,再根据该Web Socket协议与应用服务器600建立连接。
浏览器500向应用服务器600发送数据包套接字组包。
该数据包套接字组包包括包头、数据包和包尾;该包头包括组包头标示符、命令类型、命令参数和包大小;该包尾包括校验码和包尾标示符;该数据包包括命令和参数。
应用服务器600接收数据包套接字组包,解析得到遥控命令,执行遥控命令,得到执行结果。
具体的,该应用服务器接收该浏览器发送的数据包套接字组包,并分析该数据包套接字组包得到多个遥控命令,按照顺序执行该多个遥控命令,并将上一条遥控命令执行的反馈值作为本次遥控命令的参数,根据该参数以及预先设置的命令参数执行本次遥控命令,得到本次遥控命令的执行结果。该预设的命令参数可为允许容错或不允许容错。当命令参数为不允许容错时,上一条遥控命令执行返回TRUE,下一条命令继续执行,否则此遥控命令队列中断。当命令参数为允许容错时,上一条遥控命令执行返回错误时,应用服务器可跳过执行不成功的遥控命令,继续执行下一条遥控命令。
应用服务器600将执行结果返回给浏览器500。
应用服务器600还可采用间隔预设时间筛选执行结果,并将该执行结果打包成GP发送给浏览器500所在的终端。
上述基于浏览器的遥控系统,通过浏览器与应用服务器建立网页套接字连接,通过浏览器发送数据包套接字组包,应用服务器解析得到相应遥控命令,执行该遥控命令从而控制所需控制对象,不需下载控制对象所需的软件安装包并进行安装,操作简单,且将执行结果返回给浏览器,可有效的观测遥控命令执行情况。
在其他实施例中,基于浏览器的遥控系统,可仅包括浏览器500和应用服务器600。浏览器500从本地获取遥控网页,然后再与应用服务器600建立Web Socket连接。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。