本发明涉及物联网技术领域,尤其涉及一种本地通信链接的建立方法及设备、系统及存储介质。
背景技术:
在行动热点(wifi)类智能家居使用场景中,通常需要手机应用程序(application,app)、云服务器及具有wifi功能的家电设备三者之间进行交互通信,目前采用的方案是手机app和家电设备之间的交互需要通过云服务器进行中转。
当用户使用手机app控制同一个局域网内的家电设备时,由于云服务器一般在公网,而局域网内的手机app和家电设备,与云服务器之间存在多层网关,导致云服务器的通信链路较长,响应容易不及时。因此,目前存在如何及时响应的问题需要解决。
技术实现要素:
本发明的主要目的在于提供一种本地通信链接的建立方法及设备、系统及存储介质,可以通过快速有效建立本地通信链接达到及时响应的技术效果。
为实现上述目的,本发明第一方面提供一种本地通信链接的建立方法,所述方法包括:
客户端响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,所述本地通信协商请求用于指示所述智能设备分配传输控制协议tcp端口,并反馈携带所述tcp端口的端口号的本地通信协商响应,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
所述客户端在接收到所述本地通信协商响应之后,向所述智能设备发送携带所述端口号的第一链接请求,建立与所述智能设备之间的第一tcp链接,所述第一tcp链接为所述本地通信链接。
可选的,所述客户端响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求之前还包括:
若检测到用户在所述客户端的操作界面对所述智能设备执行预设的数据获取操作或者控制操作,则确定检测到所述第一本地通信操作。
可选的,所述本地通信协商响应还包括所述智能设备在接收到所述本地通信协商请求后,生成的与所述端口号对应的秘钥及身份令牌;
则所述建立与所述智能设备之间的第一tcp链接,之后还包括:
所述客户端根据所述秘钥及身份令牌生成第一认证请求,将所述第一认证请求通过所述第一tcp链接发送给所述智能设备,所述第一认证请求用于所述智能设备对所述客户端进行认证,并通过所述第一tcp链接反馈第一认证结果;
若所述第一认证结果为通过认证,则保存所述智能设备的所述端口号、所述秘钥及所述身份令牌。
可选的,所述方法还包括:
在所述第一tcp链接断开后,响应于与所述智能设备的第二本地通信操作,向所述智能设备发送携带所述端口号的第二链接请求,建立与所述智能设备之间的第二tcp链接;
根据已保存的所述秘钥及所述身份令牌生成第二认证请求,并将第二认证请求通过所述第二tcp链接发送给所述智能设备,所述第二认证请求用于所述智能设备对所述客户端进行认证,并通过所述第二tcp链接反馈第二认证结果;
若所述第二认证结果为未通过认证,则删除所述端口号、所述秘钥及所述身份令牌,返回执行所述生成并发送本地通信协商请求的步骤。
为实现上述目的,本发明第二方面提供一种本地通信链接的建立方法,所述方法包括:
智能设备接收本地通信协商请求,所述本地通信协商请求为客户端检测到与所述智能设备的第一本地通信操作之后生成的;
所述智能设备分配传输控制协议tcp端口,生成携带所述tcp端口的端口号的本地通信协商响应并反馈,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
所述智能设备接收携带所述端口号的第一链接请求,建立与所述客户端之间的第一tcp链接,所述第一链接请求为所述客户端在接收到所述本地通信协商响应之后生成的,所述第一tcp链接为所述本地通信链接。
可选的,所述智能设备接收本地通信协商请求,之后还包括:
生成并保存所述端口号对应的秘钥及身份令牌;
所述生成携带所述tcp端口的端口号的本地通信协商响应并反馈,包括:
生成所述本地通信协商响应,所述本地通信协商响应包括:所述端口号、所述秘钥及身份令牌。
可选的,所述方法还包括:
接收所述客户端通过所述第一tcp链接发送的第一认证请求;
根据所述秘钥及所述身份令牌对所述客户端进行认证,并反馈第一认证结果。
可选的,所述智能设备接收本地通信协商请求,之后还包括:
生成所述秘钥的有效时长,所述有效时长为通过认证后的tcp链接断开后,所述秘钥的保留时长;
则所述方法还包括:
若所述第一认证结果为通过认证,则监测并记录所述第一tcp链接的断开时间点;
当在以所述断开时间点为起始时间点的有效时长内,未对所述客户端进行认证,或者,对所述客户端的认证均未通过,则删除所述客户端对应的所述秘钥及身份令牌。
可选的,所述方法还包括:
若接收到所述客户端发送的携带所述端口号的第二链接请求,则建立与所述客户端之间的第二tcp链接;
若通过所述第二tcp链接接收到第二认证请求,则查找是否已保存与所述客户端对应的秘钥及身份令牌;
当未查找到与所述端口号对应的秘钥及身份令牌,则确定未通过认证,并在反馈第二认证结果后断开所述第二tcp链接;
若查找到与所述端口号对应的秘钥及身份令牌,则根据所述秘钥及身份令牌对所述客户端进行认证,并反馈第二认证结果。
为实现上述目的,本发明第三方面提供一种客户端,所述客户端包括:
生成发送模块,用于响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,所述本地通信协商请求用于指示所述智能设备分配传输控制协议tcp端口,并反馈携带所述tcp端口的端口号的本地通信协商响应,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
发送模块,用于在接收到所述本地通信协商响应之后,向所述智能设备发送携带所述端口号的第一链接请求,建立与所述智能设备之间的第一tcp链接,所述第一tcp链接为所述本地通信链接。
为实现上述目的,本发明第四方面提供一种智能设备,所述智能设备包括:
接收模块,用于接收本地通信协商请求,所述本地通信协商请求为客户端检测到与所述智能设备的第一本地通信操作之后生成的;
分配模块,用于分配传输控制协议tcp端口,生成携带所述tcp端口的端口号的本地通信协商响应并反馈,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
请求接收模块,用于接收携带所述端口号的第一链接请求,建立与所述客户端之间的第一tcp链接,所述第一链接请求为所述客户端在接收到所述本地通信协商响应之后生成的,所述第一tcp链接为所述本地通信链接。
为实现上述目的,本发明第五方面提供一种本地通信链接的建立系统,所述系统包括:云服务器,如第三方面提供的客户端、如第四方面提供的所述智能设备,所述客户端、所述云服务器及所述智能设备之间进行交互。
为实现上述目的,本发明第六方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如第一方面所述的本地通信链接的建立方法中的的步骤,或者执行如第二方面所述的本地通信链接的建立方法中的步骤。
为实现上述目的,本发明第七方面提供一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如第一方面所述的本地通信链接的建立方法的步骤;或者处理器调用所述存储器中的计算机程序时实现如第二方面所述的本地通信链接的建立方法的步骤。
采用本发明实施例,具有如下有益效果:
本发明提供一种本地通信链接的建立方法,其中,客户端响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,智能设备接收到该本地通信协商请求之后,将分配tcp端口,并反馈携带该tcp端口的端口号的本地通信协商响应,其中,该本地通信协商请求及本地通信协商响应均由云服务器在客户端与智能设备之间进行转发,客户端在接收到本地通信协商响应之后,将向智能设备发送携带端口号的第一链接请求,建立与智能设备之间的第一tcp链接,该第一tcp链接则为本地通信链接,通过上述方式能够快速有效建立客户端与智能设备之间的本地通信链接,使得客户端与智能设备的本地通信成为可能,且进一步地,在第一本地通信操作的触发下执行本地通信协商过程,使得只在有需要的时候才建立本地通信链接,资源消耗小,且安全性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为本发明实施例中本地通信链接的建立系统的结构示意图;
图2为本发明实施例中本地通信链接的建立方法的流程示意图;
图3为本发明实施例中本地通信链接的建立方法的交互图;
图4为本发明实施例中本地通信链接的建立方法的另一交互图;
图5为本发明实施例中客户端的结构框图;
图6为本发明实施例中智能设备的结构框图;
图7为本发明实施例中计算机设备的内部结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地理解本发明实施例中的技术方案,下面将介绍本地通信链接的建立系统,请参阅图1,为该本地通信链接的建立系统的结构示意图,包括:
客户端、服务器、及多个智能设备。
其中,客户端可以是安装在智能终端如智能手机、平板电脑等上的应用程序,智能设备可以是可通过wifi接入物联网的智能家居设备,例如,智能冰箱、智能空调、智能电饭煲等等,上述的客户端及智能设备均可以接入局域网中,且在该局域网内用户可以通过客户端实现对智能设备的数据的获取及控制等功能。
在局域网内,客户端与智能设备的通信交互通常是需要局域网外的云服务器进行中转,在本发明实施例中,为了解决利用云服务器中转带来的响应不及时的问题,提供一种快速有效的本地通信链接的建立方法,该本地通信链接可以实现客户端与智能设备之间的直接通信,而不需要云服务器进行转发。以下将详细进行描述。
请参阅图2,为本发明实施例中本地通信链接的建立方法的流程示意图,该方法包括:
步骤201、客户端响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,本地通信协商请求用于指示智能设备分配tcp端口,并反馈携带tcp端口的端口号的本地通信协商响应;
用户可以在客户端输入账号及密码的方式,使得客户端登录云服务器,并从云服务器获取到该客户端的账号下绑定的设备列表,其中,该客户端的账号下绑定的设备列表中的设备可以是用户在客户端通过手动添加的方式实现绑定的。例如,若用户在新购买一个智能冰箱之后,可以将该智能冰箱的设备身份标识码(identitydocument,id)等输入到客户端内的设备添加页面中,以实现绑定,且绑定的智能冰箱的设备id将传输至云服务器进行存储。需要说明的是,客户端登录云服务器、绑定设备id等过程不限于在局域网实现。
在本发明实施例中,在上述的设备列表中存在至少一个智能设备时,若上述客户端接入了局域网,则客户端将启动本地发现流程。
其中,本地发现流程为:客户端将每间隔预设时间长度,在局域网内发送用户数据报协议(userdatagramprotocol,udp)广播信号,其中,该局域网内的所有支持本地管理的智能设备在启动之后都将对其udp端口号进行监听,以便确定是否接收到udp广播信号,且若智能设备确定接收到udp广播信号,则将向客户端反馈一个单播信号,该单播信号中包含智能设备的设备id及该智能设备在局域网内的网际互连协议(internetprotocol,ip)地址等。
客户端接收到局域网内的智能设备反馈的单播信号之后,将利用该单播信号中的设备id与从云服务器获取到的设备列表中的设备id进行匹配,若在设备列表中存在单播信号中的设备id,则确定该设备id对应的智能设备属于本地在线,若在设备列表中不存在单播信号中的设备id,则表明该设备不属于该客户端可通信的设备。需要说明的是,若客户端中从云服务器中获取到的设备列表中还存在未匹配到的设备id,则表明该未匹配到的设备id对应的智能设备属于本地离线。其中,本地在线是智能设备反馈了单播信号且该智能设备的设备id在设备列表中,本地离线是指智能设备的设备id在设备列表中,但是并未接收到该智能设备的单播信号。例如,若客户端获取到的设备列表中包含设备a、b的设备id,在客户端发送udp广播信号之后,若接收到设备a反馈的单播信号,则可以确定设备a为本地在线,若在预设时间段内未接收到设备b反馈的单播信号,则可以确定设备b为本地离线,若接收到设备c反馈的单播信号,则确定该设备c不属于已绑定的设备。
可以理解的是,客户端在确定本地在线的智能设备之后,可以在界面上显示该本地在线的智能设备,以便于用户可以知晓其当前可以通过客户端进行交互的智能设备。
且进一步地,本发明实施例描述的是本地在线的智能设备与客户端之间建立本地通信链接的方案。在后续的技术方案的描述中,都默认智能设备是本地在线的智能设备,不再进行赘述。且智能设备均具有设备id,该设备id具有唯一性,是通过设备id来区分不同的智能设备的,在后续的技术方案的描述中,所提到的智能设备,均是指同一个智能设备,且不再进行赘述。
在本发明实施例中,建立本地通信链接存在触发条件,具体可以是用户在客户端执行了第一本地通信操作,该第一本地通信操作说明客户端与智能设备之间存在交互需求,客户端将响应该第一本地通信操作,生成并发送本地通信协商请求,其中,该本地通信协商请求用于与智能设备协商建立本地通信链接,且该本地通信协商请求还用于指示智能设备分配传输控制协议(transmissioncontrolprotocol,tcp)端口。
需要说明的是,上述的本地通信协商请求是由客户端发送给云服务器,然后再由云服务器转发给智能设备。
智能设备在接收到上述的本地通信协商请求之后,将分配tcp端口,具体的,可以确定当前已打开的tcp端口中是否存在未使用的tcp端口,若存在为建立链接的tcp端口,则优先分配该类型的端口,若不存在为建立链接的tcp端口,则打开tcp端口,并进行分配。需要说明的是,为了避免tcp端口频繁打开及关闭带来的资源消耗及处理方式繁琐的问题,tcp端口在打开之后可以保持在打开状态,或者保持预设时长的打开状态。
智能设备还将反馈携带该tcp端口的端口号的本地通信协商响应,该本地通信协商响应将先发送至云服务器,由云服务器进行转发至客户端。即在本发明实施例中,本地通信协商请求和本地通信协商响应均由云服务器在客户端及智能设备之间进行转发。
需要说明的是,云服务器转发的模式有两种,以云服务器转发本地通信协商请求为例进行说明,一种是:云服务器解析该本地通信协商请求,在识别请求业务之后重新构造一个新的本地通信协商请求,并将该新的本地通信协商请求转发至智能设备,在该种模式下,每增加一个业务,云服务器都需要针对该业务提供一个接口。另一种是:云服务器提供通用的透传接口,云服务器的该接口接收到本地通信协商请求之后,将部分解析该请求,但不识别业务内容,将业务内容直接重新封装后实现进行转发,这种模式下,对于不同的业务,云服务器只提供一个透传接口,该接口只关心数据的转发,不解析转发数据的内容,从而达到客户端和设备可以不依赖云服务器实现业务扩展的目的。
步骤202、客户端在接收到本地通信协商响应之后,向所述智能设备发送携带所述端口号的第一链接请求,建立与智能设备之间的第一tcp链接,第一tcp链接为本地通信链接。
在本发明实施例中,客户端在接收到本地通信协商响应之后,将从该响应中获取端口号,并向智能设备发送携带该端口号的第一链接请求,建立与智能设备之间的第一tcp链接,其中,该第一tcp链接可以用于实现客户端和智能设备之间的直接通信,而不需要云服务器进行转发,因此,可以称为本地通信链接。
可以理解的是,上述的本地通信协商请求中至少包含智能设备的设备id,以便云服务器在接收到该本地通信协商请求之后,可以将按照该设备id将本地通信协商请求转发给相应的智能设备。
在本发明实施例中,客户端为了响应与智能设备的第一本地通信操作,将生成并发送本地通信协商请求,且该本地通信协商请求将发送给云服务器,由云服务器转发给智能设备,智能设备接收到该本地通信协商请求之后,将分配tcp端口,且该智能设备还将反馈携带tcp端口的端口号的本地通信协商响应,该本地通信协商响应将发送给云服务器,由云服务器反馈给客户端,客户端接收到本地通信协商响应之后,将向所述智能设备发送携带端口号的第一链接请求,建立与智能设备之间的第一tcp链接,使得智能设备与客户端之间可以通过该第一tcp链接进行本地通信。上述本地通信协商请求是基于第一本地通信操作触发生成的,使得能够基于实际的需要建立第一tcp链接,资源消耗小且安全性高,且上述的通过分配tcp端口并反馈tcp端口的端口号的方式建立链接,使得本地通信链接的建立具有快速有效的优点。进一步地,上述的建立方法不需要使用到账号和密码,能够进一步地提高本地通信链接建立的安全性。
为了更好地理解本发明实施例中的技术方案,下面将介绍基于客户端、智能设备及云服务器的交互实现上述本地通信链接的建立方法的方案,请参阅图3,为本发明实施例中本地通信链接的建立方法的交互图,该方法包括:
步骤301、客户端响应于客户端与智能设备的第一本地通信操作,生成并发送本地通信协商请求;
步骤302、云服务器接收所述本地通信协商请求,并转发至智能设备;
步骤303、智能设备接收本地通信协商请求,分配tcp端口,及生成秘钥及身份令牌,并反馈本地通信协商响应;
上述步骤301至步骤303涉及到的内容,与图2所示实施例中步骤201所描述的内容相似,具体可以参阅步骤201中描述的相关内容,此处不做赘述。
进一步地,在本发明实施例中,可以预先定义第一本地通信操作,例如可以是用户在客户端的操作界面对智能设备执行预设的数据获取操作或者控制操作,例如,在客户端的操作界面上,显示有本地在线的智能设备的列表,用户可以点击相应的智能设备的图标,以进入该智能设备的操控界面,可将该点击智能设备的图标的操作认为是预设的控制操作,即作为上述的第一本地通信操作,以触发生成本地通信协商请求,或者,在进入操控界面之后,用户可以对该操控界面中的数据显示按钮的执行点击操作,可将该点击操作设定为预设的数据获取操作,即可作为上述的第一本地通信操作,以触发生成本地通信协商请求,或者,在进入操控界面之后,用户可对该操控界面中的功能控制按钮的执行点击操作,则可将该点击操作确定为预设的控制操作,即可作为上述的第一本地通信操作,以触发生成本地通信协商请求。
可以理解的是,在实际应用中可以基于具体的需求设置触发生成本地通信协商请求的第一本地通信操作具体是什么操作,此处不做限定。
步骤304、云服务器转发本地通信协商响应;
步骤305、客户端在接收到所述本地通信协商响应之后,向智能设备发送携带端口号的第一链接请求,建立与智能设备之间的第一tcp链接;
在本发明实施例中,客户端在接收到本地通信协商响应之后,将获取该响应中的端口号,并向智能设备发送携带该端口号的第一链接请求,以便建立与智能设备之间的第一tcp链接。
在一种可行的实现方式中,在建立第一tcp链接之后,客户端和智能设备之间可利用该第一tcp链接进行通信交互。
在另一种可行的实现方式中,在建立第一tcp链接之后,智能设备还可以对客户端进行认证,以提高使用第一tcp链接进行通信的安全性。
具体的,智能设备在分配tcp端口时,还将生成并保存该tcp端口的端口号对应的秘钥及身份令牌,使得在该tcp端口建立tcp链接之后,可以利用该秘钥和身份令牌对该tcp链接传输的认证请求进行认证,且在认证通过之后,利用该秘钥对待发送的数据进行加密,并通过tcp链接传输加密的数据,或者利用该秘钥对接收到的数据进行解密,以提高客户端与智能设备之间数据传输的安全性。
步骤306、客户端根据秘钥及身份令牌生成第一认证请求,并将所述第一认证请求通过所述第一tcp链接发送给智能设备;
步骤307、智能设备根据秘钥及身份令牌对客户端进行认证,生成第一认证结果;
步骤308、向客户端反馈第一认证结果。
在本发明实施例中,为了提高基于第一tcp链接进行通信的安全性,智能设备需要认证客户端的身份,且在认证通过的情况下,才会继续基于第一tcp链接与客户端之间进行通信。
其中,上述的本地通信协商响应中携带有与端口号对应的秘钥和身份令牌,客户端可以根据该秘钥和身份令牌生成第一认证请求,例如,利用该秘钥对身份令牌加密,得到认证数据,并通过第一tcp链接向智能设备发送包含该认证数据的第一认证请求。
其中,智能设备接收到该第一认证请求之后,将利用本地已保存的与建立第一tcp链接使用到的tcp端口的端口号对应的秘钥对该认证数据进行解密,获取该认证数据中包含的身份令牌,并使用与上述端口号对应的身份令牌与该认证数据中包含的身份令牌进行匹配,若匹配,则确定通过认证,若不匹配,则确定未通过认证,并将通过认证或者未通过认证的第一认证结果通过第一tcp链接反馈给客户端。
可以理解的是,在反馈第一认证结果给客户端后,且该第一认证结果为未通过认证的情况下,智能设备将断开该第一tcp链接,以确保安全性。
此外,在认证通过的情况下,可使用第一tcp链接进行通信,且为了避免上述的tcp端口被长时间占用,智能设备将对该第一tcp链接进行监测,若监测到超过预设时长都未使用到该第一tcp链接进行通信,则将断开该第一tcp链接,使得其他的客户端可以与上述的tcp端口建立链接。
进一步地,在认证通过的情况下,客户端还将保存与智能设备建立第一tcp链接使用到的端口号、秘钥及身份令牌,其中,保存端口号、秘钥及身份令牌是为了在第一tcp链接断开之后,若客户端需要再次与智能设备进行通信,则可以使用已保存的端口号、秘钥及身份令牌再次执行建立链接及认证的过程,而不需要重新发送本地通信协商请求,以节约资源及提高效率。
在客户端保存端口号、秘钥及身份令牌的基础上,智能设备在分配tcp端口,且生成秘钥和身份令牌之后,还可以生成该秘钥的有效时长,该有效时长是通过认证后的tcp链接断开后,该秘钥的保留时长。例如,该有效时长可以用于限定在第一tcp链接通过认证的情况下,建立第二tcp链接的时间点距离第一tcp链接断开的时间点之间的最大时长,且在超过该有效时长的情况下,将删除秘钥和身份令牌,使得第二tcp链接建立之后也会因为无法通过认证而被断开,以提高通信的安全性。
为了更好地理解上述内容,请参阅图4,为本发明实施例中第一tcp链接断开之后,本地通信链接的建立方法的交互图,包括:
步骤401、响应于第二本地通信操作,向智能设备发送携带端口号的第二链接请求,建立与智能设备之间的第二tcp链接;
步骤402、客户端将根据已保存的秘钥及身份令牌生成第二认证请求,并将第二认证请求通过第二tcp链接发送给智能设备;
步骤403、智能设备对客户端进行认证;
步骤404、智能设备反馈第二认证结果。
在本发明实施例中,在第一认证结果为通过认证的情况下,智能设备将对该第一tcp链接进行监测,且在监测到断开第一tcp链接时,记录该第一tcp链接的断开时间点。
当在以该断开时间点为起始时间点的有效时长内,未对上述客户端进行认证,或者,对该客户端的认证均未通过,此时,为了确保安全性,智能设备将删除上述第二tcp链接使用的tcp端口的端口号对应的秘钥及身份令牌。例如,若有效时长是10分钟,智能设备a与客户端b之间使用端口号c建立了第一tcp链接,端口号c对应的秘钥为d,且身份令牌为e,若智能设备a监测到该第一tcp链接的断开时间点为11:00,则若在11:00至11:10的时间段内,智能设备a未接收到携带上述端口号c的第二链接请求,则表明用户在有效时长内不存在再次进行本地通信的需求,为了确保通信安全,智能设备将删除上述端口号c对应的秘钥d及身份令牌e。
可以理解的是,客户端保存了智能设备的端口号、端口号对应的秘钥及身份令牌,但是客户端并不没有秘钥的有效时长,在这种情况下,若用户再次执行了预设的数据获取操作或者控制操作,则将被认为是第二本地通信操作,客户端将向智能设备发送携带端口号的第二链接请求。需要说明的是,第一本地通信操作和第二本地通信操作中的“第一”和“第二”是用于区分不同时刻的本地通信操作,该第二本地通信操作也可以是用户在客户端的操作界面对智能设备执行预设的数据获取操作或者控制操作等方式实现的,具体可以参阅第一本地通信操作的相关内容,此处不再赘述。
客户端在接收到第二链接请求之后,将建立与智能设备之间的第二tcp链接。
客户端在建立第二tcp链接之后,将根据已保存的秘钥及身份令牌生成第二认证请求,并将该第二认证请求通过第二tcp链接发送给智能设备。具体的,可以利用已保存的秘钥对身份令牌进行加密,生成认证数据,将该认证数据携带在第二认证请求中发送。
其中,智能设备在接收到第二认证请求之后,将对客户端进行认证,并反馈第二认证结果。
具体的,智能设备将确定是否已保存建立第二tcp链接的tcp端口的端口号对应的秘钥及身份令牌,若未保存,则表明秘钥已经超过有效时长,且已删除相关的秘钥及身份令牌,此次认证未通过,并将反馈第二认证结果并断开第二tcp链接,对于客户端来说,若接收到的第二认证结果为未通过认证,则将重新生成本地通信协商请求,返回步骤301执行本地通信协商过程。
若确定保存有上述端口号对应的秘钥及身份令牌,则将利用保存的秘钥对第二认证请求中认证数据进行解密,得到解密后的身份令牌,将该解密后的身份令牌与保存的身份令牌进行匹配,若匹配,则确定通过认证,并向客户端发送第二认证结果,使得客户端与智能设备之间可以通过第二tcp链接进行通信,若不匹配,则确定未通过认证,将向客户端反馈第二认证结果,且断开第二tcp链接。
进一步地,为了避免存在客户端通过盗用得到的端口号频繁与智能设备建立tcp链接,然后未通过认证又断开,以保持秘钥的有效时长的情况,还可以将秘钥的删除条件设置为:在上一个通过认证的tcp链接断开之后,开始记录时长,在记录的时长达到有效时长之前,接收到第二链接请求建立了第二tcp链接,但是客户端未通过认证,则删除端口号对应的秘钥及身份令牌。例如:若有效时长是10分钟,智能设备a与客户端b之间使用端口号c建立了第一tcp链接,端口号c对应的秘钥为d,且身份令牌为e,若智能设备a监测到该第一tcp链接的断开时间点为11:00,则在11:00至11:10分的时间段,接收到客户端f发送的携带端口号c的第二链接请求,则建立客户端f与智能设备a之间的第二tcp链接,随后客户端f发送携带认证请求,则利用上述秘钥c和身份令牌e确定客户端f未通过认证,其并非是客户端b,则将向客户端f反馈未通过认证的认证结果,并断开与客户端f之间的第二tcp链接,且在时间到达11:10分的时候,删除与端口号c对应的秘钥d及身份令牌e。
需要说明的是,在本发明实施例中,第一tcp链接和第二tcp链接是为了区分不同时刻的链接,且通常情况下第一tcp链接是指通过本地通信协商后建立的链接,第二tcp链接是指利用保存的端口号第n次建立的链接,该n大于或等于2。
可以理解的是,在第一tcp链接断开后的有效时长内,在客户端与智能设备建立tcp链接但是该客户端未通过认证的情况下,并不会影响对有效时长的计时。若在该有效时长内,客户端与智能设备建立了tcp链接且该客户端通过认证,则将等到该tcp链接断开之后,再进行有效时长的计时。
例如,秘钥的有效时长为10分钟,第一tcp链接的断开时间为12:00,则在12:00至12:10的时间段内,若客户端与智能设备在12:05建立了第二tcp链接,且客户端通过认证,则智能设备将监测第二tcp链接的断开时间,若第二tcp链接的断开时间为12:08,则将以12:08为时间起始点记录有效时长,且若在12:08至12:18之间未接收到第三链接请求,则将删除秘钥及身份令牌,若在12:08至12:18之间接收到第三链接请求,且建立了第三tcp链接,并通过认证,则将继续监测第三tcp链接的断开时间,此后以此类推,则可以基于有效时长实现建立链接之后客户端的认证是否通过的控制,使得不仅可以实现用户在短时间内的多次操作可以不需要每次都进行客户端与智能设备之间的本地通信协商,简化链接建立的流程,节约资源,且同时可以避免长时间保存秘钥带来的秘钥泄露的风险,提高安全性。
需要说明的是,在本发明实施例中,客户端向智能设备发送链接请求具体可以是,客户端发送单播信号,该单播信号中包含智能设备在局域网内的ip地址,及智能设备分配的tcp端口的端口号,使得局域网内的该智能设备能够接收到该链接请求,并建立tcp链接。其中,智能设备在局域网内的ip地址可以是该智能设备接收到客户端发送的udp广播信号之后,反馈udp单播信号时携带的。
在本发明实施例中,通过与智能设备的第一本地通信操作触发建立本地通信链接,使得该本地通信链接可以在需要的时候建立,资源消耗小。且在本地通信链接建立之后若预设时长内未交互数据则断开本地通信链接,使得能够避免tcp端口长时间被占用但是又没有传输数据带来的浪费资源的问题。且客户端可以通过保存智能设备反馈的端口号、秘钥及身份令牌的方式,在第一tcp链接断开之后,基于该保存的端口号、秘钥及身份令牌进行链接的建立及客户端认证,避免客户端重复多次与同一个智能设备进行本地通信协商带来的资源浪费的问题。且进一步地,智能设备通过设置秘钥的有效时长的方式,使得能够避免秘钥泄露,且有效控制客户端的认证,进一步地提高安全性。且在对客户端进行认证时,使用的时秘钥及身份令牌,而不需要使用客户端的账号及密码,避免认证过程中账号及密码的传输带来的安全问题,且简化了对客户端进行认证的过程。
请参阅图5,为本发明实施例中客户端的结构示意图,该客户端包括:
生成发送模块501,用于响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,所述本地通信协商请求用于指示所述智能设备分配传输控制协议tcp端口,并反馈携带所述tcp端口的端口号的本地通信协商响应,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
发送模块502,用于在接收到所述本地通信协商响应之后,向所述智能设备发送携带所述端口号的第一链接请求,建立与所述智能设备之间的第一tcp链接,所述第一tcp链接为所述本地通信链接。
在本发明实施例中,上述客户端涉及到的各个模块的内容与上述方法实施例及交互实施例中涉及到的客户端的内容相似,具体可以参阅前述实施例中描述的内容,此处不做赘述。
在本发明实施例中,客户端响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,智能设备接收到该本地通信协商请求之后,将分配tcp端口,并反馈携带该tcp端口的端口号的本地通信协商响应,其中,该本地通信协商请求及本地通信协商响应均由云服务器在客户端与智能设备之间进行转发,客户端在接收到本地通信协商响应之后,将向智能设备发送携带端口号的第一链接请求,建立与智能设备之间的第一tcp链接,该第一tcp链接则为本地通信链接,通过上述方式能够快速有效建立客户端与智能设备之间的本地通信链接,使得客户端与智能设备的本地通信成为可能,且进一步地,在第一本地通信操作的触发下执行本地通信协商过程,使得只在有需要的时候才建立本地通信链接,资源消耗小,且安全性高。
请参阅图6,为本发明实施例中智能设备的结构示意图,包括:
接收模块601,用于接收本地通信协商请求,所述本地通信协商请求为客户端检测到与所述智能设备的第一本地通信操作之后生成的;
分配模块602,用于分配传输控制协议tcp端口,生成携带所述tcp端口的端口号的本地通信协商响应并反馈,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
请求接收模块603,用于接收携带所述端口号的第一链接请求,建立与所述客户端之间的第一tcp链接,所述第一链接请求为所述客户端在接收到所述本地通信协商响应之后生成的,所述第一tcp链接为所述本地通信链接。
在本发明实施例中,上述智能设备涉及到的各个模块的内容与上述方法实施例及交互实施例中涉及到的客户端的内容相似,具体可以参阅前述实施例中描述的内容,此处不做赘述。
在本发明实施例中,客户端响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,智能设备接收到该本地通信协商请求之后,将分配tcp端口,并反馈携带该tcp端口的端口号的本地通信协商响应,其中,该本地通信协商请求及本地通信协商响应均由云服务器在客户端与智能设备之间进行转发,客户端在接收到本地通信协商响应之后,将向智能设备发送携带端口号的第一链接请求,建立与智能设备之间的第一tcp链接,该第一tcp链接则为本地通信链接,通过上述方式能够快速有效建立客户端与智能设备之间的本地通信链接,使得客户端与智能设备的本地通信成为可能,且进一步地,在第一本地通信操作的触发下执行本地通信协商过程,使得只在有需要的时候才建立本地通信链接,资源消耗小,且安全性高。
在一个实施例中,提出了一种客户端,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述实施例中客户端执行的相关步骤。
在一个实施例中,提出一种智能设备,包括存储器及处理器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时,使得处理器执行上述实施例中智能设备执行的相关步骤。
在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述实施例中客户端执行的相关步骤。
在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得处理器执行上述实施例中智能设备执行的相关步骤。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时实现如上述实施例中客户端执行的相关步骤。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时实现如上述实施例中客户端执行的相关步骤。
进一步地,请参阅图7,为本发明实施例中计算机设备的内部结构图,该计算机设备具体可以是终端,如上述实施例中涉及到的客户端,或者也可以是智能设备,该智能设备可以是上述实施例中涉及到的智能设备。如图7所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现本地通信链接的建立方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行本地通信链接的建立方法。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
1.一种本地通信链接的建立方法,其特征在于,所述方法包括:
客户端响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,所述本地通信协商请求用于指示所述智能设备分配传输控制协议tcp端口,并反馈携带所述tcp端口的端口号的本地通信协商响应,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
所述客户端在接收到所述本地通信协商响应之后,向所述智能设备发送携带所述端口号的第一链接请求,建立与所述智能设备之间的第一tcp链接,所述第一tcp链接为所述本地通信链接。
2.根据权利要求1所述的方法,其特征在于,所述客户端响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求之前还包括:
若检测到用户在所述客户端的操作界面对所述智能设备执行预设的数据获取操作或者控制操作,则确定检测到所述第一本地通信操作。
3.根据权利要求1所述的方法,其特征在于,所述本地通信协商响应还包括所述智能设备在接收到所述本地通信协商请求后,生成的与所述端口号对应的秘钥及身份令牌;
则所述建立与所述智能设备之间的第一tcp链接,之后还包括:
所述客户端根据所述秘钥及身份令牌生成第一认证请求,将所述第一认证请求通过所述第一tcp链接发送给所述智能设备,所述第一认证请求用于所述智能设备对所述客户端进行认证,并通过所述第一tcp链接反馈第一认证结果;
若所述第一认证结果为通过认证,则保存所述智能设备的所述端口号、所述秘钥及所述身份令牌。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述第一tcp链接断开后,响应于与所述智能设备的第二本地通信操作,向所述智能设备发送携带所述端口号的第二链接请求,建立与所述智能设备之间的第二tcp链接;
根据已保存的所述秘钥及所述身份令牌生成第二认证请求,并将第二认证请求通过所述第二tcp链接发送给所述智能设备,所述第二认证请求用于所述智能设备对所述客户端进行认证,并通过所述第二tcp链接反馈第二认证结果;
若所述第二认证结果为未通过认证,则删除所述端口号、所述秘钥及所述身份令牌,返回执行所述生成并发送本地通信协商请求的步骤。
5.一种本地通信链接的建立方法,其特征在于,所述方法包括:
智能设备接收本地通信协商请求,所述本地通信协商请求为客户端检测到与所述智能设备的第一本地通信操作之后生成的;
所述智能设备分配传输控制协议tcp端口,生成携带所述tcp端口的端口号的本地通信协商响应并反馈,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
所述智能设备接收携带所述端口号的第一链接请求,建立与所述客户端之间的第一tcp链接,所述第一链接请求为所述客户端在接收到所述本地通信协商响应之后生成的,所述第一tcp链接为所述本地通信链接。
6.根据权利要求5所述的方法,其特征在于,所述智能设备接收本地通信协商请求,之后还包括:
生成并保存所述端口号对应的秘钥及身份令牌;
所述生成携带所述tcp端口的端口号的本地通信协商响应并反馈,包括:
生成所述本地通信协商响应,所述本地通信协商响应包括:所述端口号、所述秘钥及身份令牌。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述客户端通过所述第一tcp链接发送的第一认证请求;
根据所述秘钥及所述身份令牌对所述客户端进行认证,并反馈第一认证结果。
8.根据权利要求6所述的方法,其特征在于,所述智能设备接收本地通信协商请求,之后还包括:
生成所述秘钥的有效时长,所述有效时长为通过认证后的tcp链接断开后,所述秘钥的保留时长;
则所述方法还包括:
若所述第一认证结果为通过认证,则监测并记录所述第一tcp链接的断开时间点;
当在以所述断开时间点为起始时间点的有效时长内,未对所述客户端进行认证,则删除所述端口号对应的所述秘钥及身份令牌。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若接收到所述客户端发送的携带所述端口号的第二链接请求,则建立与所述客户端之间的第二tcp链接;
若通过所述第二tcp链接接收到第二认证请求,则查找是否已保存与所述客户端对应的秘钥及身份令牌;
当未查找到与所述端口号对应的秘钥及身份令牌,则确定未通过认证,并在反馈第二认证结果后断开所述第二tcp链接;
若查找到与所述端口号对应的秘钥及身份令牌,则根据所述秘钥及身份令牌对所述客户端进行认证,并反馈第二认证结果。
10.一种客户端,其特征在于,所述客户端包括:
生成发送模块,用于响应于与智能设备的第一本地通信操作,生成并发送本地通信协商请求,所述本地通信协商请求用于指示所述智能设备分配传输控制协议tcp端口,并反馈携带所述tcp端口的端口号的本地通信协商响应,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
发送模块,用于在接收到所述本地通信协商响应之后,向所述智能设备发送携带所述端口号的第一链接请求,建立与所述智能设备之间的第一tcp链接,所述第一tcp链接为所述本地通信链接。
11.一种智能设备,其特征在于,所述智能设备包括:
接收模块,用于接收本地通信协商请求,所述本地通信协商请求为客户端检测到与所述智能设备的第一本地通信操作之后生成的;
分配模块,用于分配传输控制协议tcp端口,生成携带所述tcp端口的端口号的本地通信协商响应并反馈,所述本地通信协商请求及所述本地通信协商响应均由云服务器在所述客户端及所述智能设备之间进行转发;
请求接收模块,用于接收携带所述端口号的第一链接请求,建立与所述客户端之间的第一tcp链接,所述第一链接请求为所述客户端在接收到所述本地通信协商响应之后生成的,所述第一tcp链接为所述本地通信链接。
12.一种本地通信链接的建立系统,其特征在于,所述系统包括:云服务器,如权利要求10所述的客户端、如权利要求11所述的智能设备,所述客户端、所述云服务器及所述智能设备之间进行交互。
13.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述的本地通信链接的建立方法中的的步骤,或者执行如权利要求5至9任意一项所述的本地通信链接的建立方法中的步骤。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-4任一项所述的本地通信链接的建立方法的步骤;或者处理器调用所述存储器中的计算机程序时实现如权利要求5-9任一项所述的本地通信链接的建立方法的步骤。
技术总结