CN105812422B - 基于物联网的文件传输方法和装置 - Google Patents

基于物联网的文件传输方法和装置 Download PDF

Info

Publication number
CN105812422B
CN105812422B CN201410848460.XA CN201410848460A CN105812422B CN 105812422 B CN105812422 B CN 105812422B CN 201410848460 A CN201410848460 A CN 201410848460A CN 105812422 B CN105812422 B CN 105812422B
Authority
CN
China
Prior art keywords
server
network access
user terminal
file
file transmission
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.)
Active
Application number
CN201410848460.XA
Other languages
English (en)
Other versions
CN105812422A (zh
Inventor
常青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201410848460.XA priority Critical patent/CN105812422B/zh
Publication of CN105812422A publication Critical patent/CN105812422A/zh
Application granted granted Critical
Publication of CN105812422B publication Critical patent/CN105812422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种基于物联网的文件传输方法和装置,该方法包括:接收用户终端发来的第一文件传输请求;通过与网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备;接收网络接入设备返回的第一确认反馈并发送给用户终端;接收用户终端在收到第一确认反馈后发来的第一连接请求;根据第一连接请求,将用户终端的公网网络地址及端口号发送给网络接入设备,并将网络接入设备的公网网络地址及端口号发送给用户终端,以使用户终端和网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第一点对点连接通道,并通过该第一点对点连接通道传输第一文件。本发明实现了基于物联网向网络接入设备传输文件。

Description

基于物联网的文件传输方法和装置
技术领域
本发明涉及物联网技术领域,特别是涉及一种基于物联网的文件传输方法和装置。
背景技术
物联网是新一代信息技术的重要组成部分,其英文名称是“The Internet ofthings”,是指物物相连的互联网。物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络,物联网使得基于用户终端的互联网延伸和扩展到了物品与物品之间的信息交换和通信。通过物联网,用户可以通过手机等控制终端来远程控制家里的网络接入设备,以实现远程控制。
网络接入设备与用户终端接入基于物联网可以有两种方式,包括直接接入公网以及通过内网连接到公网。公网内的节点之间可以随意互相访问。目前的物联网实现方案,需要网络接入设备接入公网,具有公网网络地址,这样用户终端才可以通过网络接入设备的公网网络地址寻找到该网络接入设备并与其通信,实现对网络接入设备的控制。类似地,若网络接入设备需要与用户终端连接通信,也需要用户终端接入公网并具有公网网络地址,网络接入设备才能通过用户终端的公网网络地址与用户终端连接通信。
然而,公网网络地址的资源是有限的,为每个网络接入设备以及用户终端各自分配公网网络地址成本太高,也是不切实际的。合理的情形是,网络接入设备与用户终端都通过各自的网关接入公网的,网络接入设备与用户终端分别处于各自的内网中,与公网之间的通信需要进行NAT(Network Address Translation,网络地址转换)。这样网络接入设备和用户终端如何寻找到对方并进行通信就成为一个难题,使得网络接入设备与用户终端之间传输文件成为一个难题。
发明内容
基于此,有必要针对目前网络接入设备与用户终端分别处于各自的内网中,难以实现文件传输的问题,提供一种基于物联网的文件传输方法和装置。
一种基于物联网的文件传输方法,所述方法包括:
接收用户终端发来的携带有设备账号的第一文件传输请求;
通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
接收所述网络接入设备响应于所述第一文件传输请求而返回的第一确认反馈;
将所述第一确认反馈发送给所述用户终端;
接收所述用户终端在收到所述第一确认反馈后发来的第一连接请求;
根据所述第一连接请求,将所述用户终端的公网网络地址及端口号发送给所述网络接入设备,并将所述网络接入设备的公网网络地址及端口号发送给所述用户终端,以使所述用户终端和所述网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第一点对点连接通道,并通过该第一点对点连接通道传输第一文件。
一种基于物联网的文件传输装置,所述装置包括:
文件传输请求处理模块,用于接收用户终端发来的携带有设备账号的第一文件传输请求;通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
确认反馈处理模块,用于接收所述网络接入设备响应于所述第一文件传输请求而返回的第一确认反馈;将所述第一确认反馈发送给所述用户终端;
连接请求处理模块,用于接收所述用户终端在收到所述第一确认反馈后发来的第一连接请求;根据所述第一连接请求,将所述用户终端的公网网络地址及端口号发送给所述网络接入设备,并将所述网络接入设备的公网网络地址及端口号发送给所述用户终端,以使所述用户终端和所述网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第一点对点连接通道,并通过该第一点对点连接通道传输第一文件。
上述基于物联网的文件传输方法和装置,与网络接入设备保持第一长连接通道,可以随时与网络接入设备通信;接收到用户终端发来的第一文件传输请求,就可以获知用户终端在网络中的通信位置,这样就可以实现在用户终端和网络接入设备之间传递消息。在网络接入设备确认后,就可以应用户终端的连接请求,向用户终端和网络接入设备分别提供对方的公网网络地址及端口号,使得用户终端和网络接入设备可以根据获取到的对方的公网网络地址及端口号来对对方的网络地址转换设备进行NAT穿越,从而可以建立起用户终端和网络接入设备之间的点对点传输通道,用来传输文件。这样无论网络接入设备是否直接连接到公网,以及其内网环境如何变化,都可以寻找到网络接入设备,实现用户终端向网络接入设备传输第一文件。
一种基于物联网的文件传输方法,所述方法包括:
向服务器发送携带有设备账号的第一文件传输请求,使所述服务器通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
接收所述网络接入设备响应于所述第一文件传输请求而通过所述服务器所返回的第一确认反馈;
响应于所述第一确认反馈,向所述服务器发送第一连接请求,使所述服务器将发出所述第一连接请求的公网网络地址及端口号发送给所述网络接入设备;
接收所述服务器根据所述第一连接请求而返回的所述网络接入设备的公网网络地址及端口号;
与所述网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道;
通过所述第一点对点连接通道向所述网络接入设备传输第一文件。
一种基于物联网的文件传输装置,其特征在于,所述装置包括:
文件传输请求发送模块,用于向服务器发送携带有设备账号的第一文件传输请求,使所述服务器通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
确认反馈接收模块,用于接收所述网络接入设备响应于所述第一文件传输请求而通过所述服务器所返回的第一确认反馈;
连接请求发送模块,用于响应于所述第一确认反馈,向所述服务器发送第一连接请求,使所述服务器将发出所述第一连接请求的公网网络地址及端口号发送给所述网络接入设备;
公网网络地址及端口号接收模块,用于接收所述服务器根据所述第一连接请求而返回的所述网络接入设备的公网网络地址及端口号;
连接通道建立模块,用于与所述网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道;
文件传输模块,用于通过所述第一点对点连接通道向所述网络接入设备传输第一文件。
上述基于物联网的文件传输方法和装置,服务器与网络接入设备保持第一长连接通道,服务器就可以随时与网络接入设备通信;向服务器发送第一文件传输请求,服务器也可以获知用户终端本地在网络中的通信位置,这样就可以通过服务器而与网络接入设备之间传递消息。在网络接入设备确认后,就可以发起连接请求,获取到网络接入设备的公网网络地址及端口号,用来对网络接入,网络接入设备则获取到用户终端本地的公网网络地址及端口号,这样就可以对网络接入设备和用户终端本地各自的网络地址转换设备进行NAT穿越,从而建立起与网络接入设备之间的点对点传输通道,用来传输文件。这样无论网络接入设备是否直接连接到公网,以及其内网环境如何变化,都可以寻找到网络接入设备,实现向网络接入设备传输第一文件。
一种基于物联网的文件传输方法,所述方法包括:
接收所述服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;所述服务器发来的第一文件传输请求由用户终端发送给所述服务器;
响应于所述第一文件传输请求而通过所述服务器向所述用户终端发送第一确认反馈,以使所述用户终端根据所述第一确认反馈向所述服务器发送第一连接请求;
接收所述服务器根据所述第一连接请求而返回的所述用户终端的公网网络地址及端口号;
与所述用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道;
接收所述用户终端通过所述第一点对点连接通道发来的第一文件。
一种基于物联网的文件传输装置,所述装置包括:
文件传输请求接收单元,接收所述服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;所述服务器发来的第一文件传输请求由用户终端发送给所述服务器;
确认反馈发送单元,用于响应于所述第一文件传输请求而通过所述服务器向所述用户终端发送第一确认反馈,以使所述用户终端根据所述第一确认反馈向所述服务器发送第一连接请求;
公网网络地址及端口号接收单元,用于接收所述服务器根据所述第一连接请求而返回的所述用户终端的公网网络地址及端口号;
连接通道建立单元,用于与所述用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道;
文件传输单元,用于接收所述用户终端通过所述第一点对点连接通道发来的第一文件。
上述基于物联网的文件传输方法和装置,与服务器保持第一长连接通道,这样服务器就可以随时与网络接入设备本地进行通信;第一文件传输请求来自用户终端,这样就可以实现网络接入设备本地与用户终端之间传递消息。发出第一确认反馈,使得服务器应用户终端发起的连接请求,向用户终端和网络接入设备本地分别提供对方的公网网络地址及端口号,这样网络接入设备本地与用户在终端就可以通过向各自的公网网络地址及端口号发送数据包来实现对各自的网络地址转换设备的NAT穿越,从而可以建立起与用户终端之间的点对点传输通道,用来传输文件。这样无论是否连接到公网,以及内网环境如何变化,都可以接收到用户终端所传输的文件。
附图说明
图1为一个实施例中基于物联网的文件传输系统的环境图;
图2为一个实施例中图1中的服务器的内部结构示意图;
图3为另一个实施例中基于物联网的文件传输系统的环境图;
图4为一个实施例中图1中的用户终端的内部结构示意图;
图5为一个实施例中图1中的网络接入设备的内部结构示意图;
图6为一个实施例中基于物联网的文件传输方法的流程示意图;
图7为一个实施例中用户终端和网络接入设备与服务器通信的示意图;
图8为一个实施例中根据来自网络接入设备的第二文件传输请求来向用户终端传输第二文件的步骤的流程示意图;
图9为一个实施例中用户终端采集声音和/或图像以形成第一文件的步骤的流程示意图;
图10为一个实施例中通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备的步骤的流程示意图;
图11为另一个实施例中基于物联网的文件传输方法的流程示意图;
图12为一个实施例中从网络接入设备接收第二文件的步骤的流程示意图;
图13为再一个实施例中基于物联网的文件传输方法的流程示意图;
图14为一个实施例中向用户终端传输第二文件的步骤的流程示意图;
图15为一个实施例中基于物联网的文件传输装置的结构框图;
图16为另一个实施例中基于物联网的文件传输装置的结构框图;
图17为再一个实施例中基于物联网的文件传输装置的结构框图;
图18为一个实施例中基于物联网的文件传输装置的结构框图;
图19为另一个实施例中基于物联网的文件传输装置的结构框图;
图20为再一个实施例中基于物联网的文件传输装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,在一个实施例中,提供了一种基于物联网的文件传输系统100,包括服务器102、至少一个用户终端104和至少一个网络接入设备106。服务器102用于提供对物联网服务的支持,可以用独立的一个服务器实现,也可以包括多个服务器,且每个服务器分别实现部分功能。
在一个实施例中,图1中的服务器102的内部结构如图2所示,该服务器102包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器102的存储介质存储有操作系统、数据库和一种基于物联网的文件传输装置,该基于物联网的文件传输装置用于实现一种基于物联网的文件传输方法。该服务器102的处理器被配置为执行一种基于物联网的文件传输方法。服务器102具有独立的公网网络地址。在另一个实施例中,如图3所示,服务器102包括NAT穿越辅助服务器和消息服务器。
在一个实施例中,图1中的用户终端104的内部结构如图4所示,该用户终端104通过其NAT(网络地址转换)设备连接到公网,可根据服务器102的公网网络地址连接到服务器102。网络地址转换设备可以是具备NAT模块的路由器。公网是指不需要经由路由器或者交换机就可以直接连接到互联网的网络,连接到公网的节点可以被互联网中其它节点直接访问。内网则是需要通过路由器或者交换机连接到互联网的子网络,内网中的节点共享公网网络地址,内网中的节点难以被互联网中的其它节点主动发现。
该用户终端104包括通过系统总线连接的处理器、存储介质、内存、网络接口、显示屏幕和输入设备。其中,用户终端104的存储介质存储有操作系统和一种基于物联网的文件传输装置,该基于物联网的文件传输装置用于实现一种基于物联网的文件传输方法。该用户终端104的处理器被配置为执行一种基于物联网的文件传输方法。用户终端104直接面向用户,可以是台式计算机也可以是移动终端,移动终端比如可以是智能手机、平板电脑以及PDA(个人数字助理)等。
图1中的网络接入设备106是指可以接入物联网并可通过物联网进行控制的设备。网络接入设备106与用户终端104不同。网络接入设备106可通过其网络地址转换设备以连接到公网,并可根据服务器102的公网网络地址连接到服务器102。在一个实施例中网络接入设备106的内部结构如图5所示。网络接入设备106包括控制芯片、存储介质和工作功能机构。控制芯片具有网络连接功能,存储介质存储有一种基于物联网的文件传输装置,用于实现一种基于物联网的文件传输方法。网络接入设备106可以是网络摄像头、智能电视机以及打印机等。对于网络摄像头其工作功能机构至少具有捕捉影像的功能,对于智能电视则其工作功能机构至少具有接收电视节目信号以及播放电视节目的功能,以此类推。
如图6所示,在一个实施例中,提供了一种基于物联网的文件传输方法,本实施例以该方法应用于上述图1中的服务器102来举例说明。该方法具体包括以下步骤:
步骤602,接收用户终端发来的携带有设备账号的第一文件传输请求。
具体地,用户终端可以响应于用户触发的请求触发指令,以向服务器发送携带有设备账号的第一文件传输请求。服务器具有公网网络地址,用户终端可以随时根据该服务器的公网网络地址与该服务器连接通信。该第一文件传输请求是一个消息,该消息具有表示该消息是一个文件传输请求的消息类型标识。第一文件传输请求的描述用于与下述的第二文件传输请求区别开,第一、第二的描述并不限定发生先后顺序。
其中,设备账号是指可以唯一标识出一个网络接入设备的字符串,可以包括数字、字母以及符号中的至少一种,比如设备账号可以是“123456789”。设备账号可以采用网络接入设备的序列号或者MAC(Media Access Control介质访问控制)地址,还可以由设备厂商按照自定义编码方式生成。设备账号可由网络接入设备的生成厂商固化在网络接入设备中,在需要时读取;设备账号也可以通过服务器注册获得。
用户终端可以提供用户交互界面,根据用户作用于该用户交互界面所触发的文件选择指令选定第一文件,从而自动或者在接收到用户触发的确认传输的指令后,向服务器发送携带有设备账号的第一文件传输请求。设备账号可由用户在该用户交互界面中录入,也可以根据终端账号从服务器查询与该终端账号具有关联的设备账号,当然需要事先进行绑定操作以建立该终端账号和该设备账号间的关联。
第一文件可以是纯文本文件,也可以是多媒体文件。多媒体文件比如可以是包括音频数据、视频数据以及图片的文件,或者可以是音频数据、视频数据以及图片中的至少一种与文本信息共同构成的文件。
在一个实施例中,用户终端可以检测第一文件的文件大小,若大于预设阈值,则向服务器发送携带有设备账号的第一文件传输请求;若小于预设阈值,则生成包括该第一文件的消息而通过服务器直接传输给网络接入设备。本实施例中,若需要传输的第一文件很小,则可以直接将其加入消息中而通过服务器传输给网络接入设备,这样效率更高。
步骤604,通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备。
网络接入设备要与服务器保持第一长连接通道。长连接的概念是相对于短连接而言的,所谓短连接就是一次很短暂的请求和回应,比如到某网站上下载一个网页,或者到某个网站提交一份订单。然而长连接则不同,长连接要求网络接入设备与服务器一直保持一个连接状态,这样服务器才可以在有任何信息要通知给网络接入设备时,能够及时下发给网络接入设备。
在一个实施例中,基于物联网的文件传输方法还包括:接收网络接入设备发来的携带有设备账号和设备密码的登录请求,根据该登录请求完成登录授权后建立与网络接入设备间的第一长连接通道。
设备密码与设备账号对应,是服务器进行鉴权的依据,可以包括数字、字母以及符号中的至少一种,比如设备密码可以是“abcdefg”。设备密码可以随机生成,也可以采用默认字符串。设备密码可由网络接入设备的生成厂商固化在网络接入设备中,在需要时读取;设备密码也可以通过服务器注册设备账号时一并获得。服务器可以应用户终端的请求来修改网络接入设备的设备密码,并通知网络接入设备,使网络接入设备更新网络接入设备上存储的设备密码。
服务器会对应存储网络接入设备的设备账号和设备密码,还会对应记录表示该存储的账号和密码分别为网络接入设备的设备账号和设备密码的类型标识。比如,服务器存储的网络接入设备的设备账号和设备密码可如表一所示,其中device是类型标识,表示其相应的账号和密码分别为网络接入设备的设备账号和设备密码;mobile是另一种类型标识,表示其相应的账号和密码分别为终端账号和终端密码。
表一:
账号 密码 类型
123456789 abcdefg device
987654321 dkgssd mobile
网络接入设备内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样网络接入设备在通电后可立即根据服务器的公网网络地址向服务器发送登录请求,或者网络接入设备可以在预定义的时间点自动触发向服务器发送登录请求,或者网络接入设备还可以在检测到用户触发的登录操作指令后,触发根据服务器的公网网络地址向服务器发送登录请求。该登录请求携带有网络接入设备内置的设备账号和设备密码。
服务器在接收到网络接入设备发来的登录请求后,根据服务器上对应记录的设备账号和设备密码对该登录请求中的设备账号和设备密码进行验证以实现鉴权,验证通过则完成对于网络接入设备的登录授权。然后服务器与网络接入设备之间建立起第一长连接通道。该第一长连接通道是与该设备账号对应的。
在一个实施例中,服务器存储有设备账号和终端账号的关联关系,服务器在接收到用户终端发送的第一文件传输请求后,检查第一文件传输请求所携带的设备账号和终端账号是否存在关联关系,若是则执行步骤604,若否则无动作或者向用户终端返回无访问权限的通知。上述关联关系中终端账号所对应的用户终端具有解除该关联关系的权限,该关联关系被接触后,其它用户终端可以建立新的关联关系。
步骤606,接收网络接入设备响应于第一文件传输请求而返回的第一确认反馈。
第一确认反馈是用来表示用户接受第一文件传输请求的信息,可以用任意预定义格式的字符串来表示。第一确认反馈是一个消息,可由消息服务器传递。
网络接入设备在接收到第一文件传输请求后做出响应,通过第一长连接通道向服务器返回第一确认反馈。进一步地,网络接入设备可以在接收到第一文件传输请求后,自动向服务器返回第一确认反馈;网络接入设备也可以在接收到第一文件传输请求后,检测用户确认指令,在检测到用户确认指令之后向服务器返回第一确认反馈。当然用户也可以选择拒绝接收文件,此时可通知用户终端文件传输被拒绝。
在一个实施例中,网络接入设备在接收到第一文件传输请求后,可以响应于第一文件传输请求而触发提示操作,并在接收到用户确认指令后向服务器发送第一确认反馈,由服务器接收。其中提示操作可以语音播报、指示灯闪烁等形式进行。用户点击了网络接入设备上的确认接收文件的按键后,或者通过声控方式确认接收文件后,触发用户确认指令。
在一个实施例中,网络接入设备在触发提示操作后开始计时,当计时达到预设时长且未检测到用户确认指令时,根据预定义策略取消提示操作或者触发向服务器发送第一确认反馈。本实施例中,当进行提示操作后,用户若不及时处理,可以根据预定义策略来进行处理,可以及时对第一文件传输请求做出响应。
步骤608,将第一确认反馈发送给用户终端。
用户终端向服务器发送第一文件传输请求时会携带有源地址,这样服务器就可以根据该源地址确定用户终端在网络中的位置,从而向该用户终端返回第一确认反馈。或者在一个实施例中,服务器可以预先接收用户终端发来的携带有终端账号和终端密码的登录请求,根据该登录请求完成登录授权后建立与用户终端的第二长连接通道。该第二长连接通道是与终端账号对应的。用户终端在向服务器发送第一文件传输请求时可携带有终端账号,从而在步骤608中,服务器可以通过该终端账号所对应的第二长连接通道而向用户终端返回第一确认反馈。
步骤610,接收用户终端在收到第一确认反馈后发来的第一连接请求。
具体地,用户终端在接收到第一确认反馈后,获知网络接入设备准许传输文件,则此时向服务器发送第一连接请求。该第一连接请求是用于请求建立用户终端与网络接入设备之间的点对点连接通道的消息。
步骤612,根据第一连接请求,将用户终端的公网网络地址及端口号发送给网络接入设备,并将网络接入设备的公网网络地址及端口号发送给用户终端,以使用户终端和网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第一点对点连接通道,并通过该第一点对点连接通道传输第一文件。
具体地,这里用户终端的公网网络地址及端口号,是指用户终端在公网中通信所采用的网络地址及端口号,一般不是用户终端的内网网络地址及端口号,而是用户终端在其内网中经过其网络地址转换设备转换后的网络地址及端口号,转换后的网络地址一般是网络地址转换设备自身的公网网络地址,同一内网中的各个节点共享该公网网络地址。类似地,网络接入设备的公网网络地址及端口号,是指网络接入设备在公网中通信所采用的网络地址及端口号。点对点,英文为peer-to-peer,是客户端之间无需通过服务器就可以直接连接的技术。
网络地址转换设备存在安全机制,只有当内网中的某节点A向内网外部的另一节点B发送了消息之后的一段时间内,另一节点B到内网中的节点A的消息才是被允许的,称为NAT穿越。因此,用户终端与网络接入设备之间要建立点对点连接通道,需要对对方所属的网络地址转换设备进行NAT穿越后才能实现。
这里服务器可以分别与用户终端和网络接入设备进行通信,用户终端和网络接入设备通过服务器的协助来实现NAT穿越。具体地,服务器会记录用户终端和网络接入设备各自的公网网络地址及端口号,优选地,记录的公网网络地址及端口号是定时更新的。记录的公网网络地址及端口号是与账号对应的。这样服务器在需要时可以向用户终端和网络接入设备返回NAT穿越所需的对方的公网网络地址和端口号。
在一个实施例中,服务器102包括消息服务器和NAT穿越辅助服务器,则上述步骤602-步骤608由消息服务器来实现,而上述步骤610-步骤612则由NAT穿越辅助服务器实现。
在一个实施例中,用户终端和网络接入设备各自向对方的公网网络地址及端口号发送数据包,可以采用服务器分配的测试成功的数据包发送序列,该数据包发送序列包括发送的数据包的种类、数量以及顺序。
下面参照图7来举例来说明上述步骤612:用户终端104通过网络地址转换设备NAT-1连接到服务器102,网络接入设备通过网络地址转换设备NAT-2连接到服务器102。用户终端104和网络接入设备106各自被分配的内网网络地址恰好相同,均为192.168.1.3,采用的端口号也恰好相同是1025。于是用户终端104和网络接入设备106都无法利用其内网网络地址直接找到对方。用户终端104发往服务器102的数据包1,经过网络地址转换设备NAT-1进行地址转换后,其网络地址及端口号映射为端口号池中的一个端口号,并采用网络地址转换设备NAT-1自身的公网网络地址为网关地址1,于是用户终端104通过网络地址转换设备NAT-1发出去的数据包的源地址及端口号就是网关地址1和12000,这样服务器会对应用户终端104的终端账号记录下来。
类似地,网络接入设备106发往服务器102的数据包2的内网网络地址及端口号被映射为端口号池中的另一个端口号,并采用网络地址转换设备NAT-2自身的公网网络地址为网关地址2,于是网络接入设备106通过网络地址转换设备NAT-2发出去的数据包的源地址及端口号就是网关地址2和13000,这样服务器会对应网络接入设备106的设备账号记录下来。服务器102维持如图7中所示的公网网络地址表。
执行步骤612时,服务器102在收到用户终端104发来的携带有设备账号987654321和终端账号123456789的第一连接请求后,将网关地址1及12000发送给网络接入设备106,将网关地址2及13000返回给用户终端104,这样用户终端104便可以向网关地址2及13000发送数据包,并且网络接入设备106向网关地址1及12000发送另一个数据包。先到的数据包会由于存在NAT安全机制而被丢弃,但双方互发数据包后,就可以直接通信,建立点对点连接通道,实现了分别在网络接入设备NAT-1和NAT-2上的NAT穿越。在更为复杂的网络构架中,NAT穿越时数据包的发送数量和发送次序是可以根据需要来变化的,基于类似的原理,也可以实现多层NAT设备的NAT穿越。
上述基于物联网的文件传输方法,与网络接入设备保持第一长连接通道,可以随时与网络接入设备通信;接收到用户终端发来的第一文件传输请求,就可以获知用户终端在网络中的通信位置,这样就可以实现在用户终端和网络接入设备之间传递消息。在网络接入设备确认后,就可以应用户终端的连接请求,向用户终端和网络接入设备分别提供对方的公网网络地址及端口号,使得用户终端和网络接入设备可以根据获取到的对方的公网网络地址及端口号来对对方的网络地址转换设备进行NAT穿越,从而可以建立起用户终端和网络接入设备之间的点对点传输通道,用来传输文件。这样无论网络接入设备是否直接连接到公网,以及其内网环境如何变化,都可以寻找到网络接入设备,实现用户终端向网络接入设备传输第一文件。
如图8所示,在一个实施例中,该基于物联网的文件传输方法还包括根据来自网络接入设备的第二文件传输请求来向用户终端传输第二文件的步骤,具体包括如下步骤:
步骤802,接收网络接入设备发来的携带有终端账号的第二文件传输请求。
具体地,终端账号是指可以标识出一个用户终端的字符串,可以包括数字、字母以及符号中的至少一种。若用户终端是手机,则终端账号可以是手机号,终端账号也可以采用用户在社交网络中的账号,比如即时通信账号。
网络接入设备可以响应于用户触发的请求触发指令,以向服务器发送携带有终端账号的第二文件传输请求。用户终端内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样用户终端可以随时根据该公网网络地址与服务器连接通信。
网络接入设备可以实时采集环境声音和/或图像以形成需要传输的第二文件,然后触发对应于该第二文件的第二文件传输指令。第二文件可以是纯文本文件,也可以是多媒体文件。多媒体文件比如可以是包括音频数据、视频数据以及图片的文件,或者可以是音频数据、视频数据以及图片中的至少一种与文本信息共同构成的文件。
在一个实施例中,网络接入设备可以检测第二文件的文件大小,若大于预设阈值,则向服务器发送携带有终端账号的第二文件传输请求;若小于预设阈值,则生成包括该第二文件的消息而通过服务器直接传输给用户终端。本实施例中,若需要传输的第二文件很小,则可以直接将其加入消息中而通过服务器传输给用户终端,这样效率更高。
步骤804,通过与终端账号所对应的用户终端间的第二长连接通道,将第二文件传输请求发送给用户终端。
在一个实施例中,该基于物联网的文件传输方法还包括:接收用户终端发来的携带有终端账号和终端密码的登录请求,根据该登录请求完成登录授权后建立与用户终端间的第二长连接通道。
用户终端的交互能力要强于网络接入设备,用户终端可以提供用户交互界面,该用户交互界面提供终端账号输入框和终端密码输入框,于是用户终端可以获取用户在终端账号输入框中输入的信息作为终端账号,并将终端密码输入框中输入的信息作为终端密码,在接收到用户触发的登录触发指令后,触发向服务器发送携带有终端账号和终端密码的登录请求。
用户终端内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样用户终端可以随时根据该公网网络地址与服务器连接通信。
服务器会对应存储终端账号和终端密码,还会对应记录表示该存储的账号和密码分别为终端账号和终端密码的类型标识。比如上述表一中的“mobile”,就表示相应的账号是终端账号,相应的密码是终端密码。
服务器在接收到用户终端发来的登录请求后,根据服务器上对应记录的终端账号和终端密码来对该登录请求中的终端账号和终端密码进行验证以实现鉴权,验证通过则完成对于该用户终端的登录授权。然后服务器与用户终端之间建立起第二长连接通道并保持。该第二长连接通道是与终端账号对应的。
步骤806,接收用户终端响应于第二文件传输请求而返回的第二确认反馈。
第二确认反馈是用来表示用户接受第二文件传输请求的信息,可以用任意预定义格式的字符串来表示。第二确认反馈是一个消息,可由消息服务器传递。
用户终端在接收到第二文件传输请求后做出响应,通过第二长连接通道向服务器返回第二确认反馈。进一步地,用户终端可以在接收到第二文件传输请求后,自动向服务器返回第二确认反馈;用户终端也可以在接收到第二文件传输请求后,检测用户确认指令,在检测到用户确认指令之后向服务器返回第二确认反馈。当然用户也可以选择拒绝接收文件,此时可通知网络接入设备文件传输被拒绝。
在一个实施例中,用户终端在接收到第二文件传输请求后,可以响应于第二文件传输请求而触发提示操作,并在接收到用户确认指令后向服务器发送第二确认反馈,由服务器接收。其中提示操作可以语音播报、指示灯闪烁等形式进行。用户点击了用户终端上的确认接收文件的按键后,或者通过声控方式确认接收文件后,或者在用户终端的触摸板上触摸了特定位置后,触发用户确认指令。
在一个实施例中,用户终端在触发提示操作后开始计时,当计时达到预设时长且未检测到用户确认指令时,根据预定义策略取消提示操作或者触发向服务器发送第二确认反馈。本实施例中,当进行提示操作后,用户若不及时处理,可以根据预定义策略来进行处理,可以及时对第二文件传输请求做出响应。
步骤808,将第二确认反馈发送给网络接入设备。
具体地,服务器可通过第一长连接通道将第二确认反馈发送给网络接入设备。
步骤810,接收网络接入设备在收到第二确认反馈后发来的第二连接请求。
具体地,网络接入设备在接收到第二确认反馈后,获知用户终端准许传输文件,则此时向服务器发送第二连接请求。该第二连接请求是用于请求建立网络接入设备与网络接入设备之间的点对点连接通道的消息。
步骤812,根据第二连接请求,将用户终端的公网网络地址及端口号发送给网络接入设备,并将网络接入设备的公网网络地址及端口号发送给用户终端,以使用户终端和网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第二点对点连接通道,并通过该第二点对点连接通道传输第二文件。
这里服务器可以分别与用户终端和网络接入设备进行通信,用户终端和网络接入设备通过服务器的协助来实现NAT穿越。具体地,服务器会记录用户终端和网络接入设备各自的公网网络地址及端口号,优选地,记录的公网网络地址及端口号是定时更新的。记录的公网网络地址及端口号是与账号对应的。这样服务器在需要时可以向用户终端和网络接入设备返回NAT穿越所需的对方的公网网络地址和端口号。
在一个实施例中服务器102包括消息服务器和NAT穿越辅助服务器,则上述步骤802-步骤808由消息服务器来实现,而上述步骤810-步骤812则由NAT穿越辅助服务器实现。
本实施例中,用户终端和网络接入设备之间可以借助服务器建立点对点连接通道,进而可以高效地传输文件,可适用于各种需要双向传输文件的场景。
在一个实施例中,第一文件为多媒体文件;第一文件根据用户终端所采集的声音和/或图像生成。比如第一文件可以是语音留言文件、录像文件等。参照图9,以下具体说明用户终端采集声音和/或图像以形成第一文件的详细步骤:
步骤902,检测录制触发指令。
录制触发指令是指触发录制操作的指令,可以通过按压用户终端上的机械按键或者点击用户终端所提供的用户交互界面中的特定控件来触发该录制触发指令。
步骤904,根据录制触发指令开始采集环境声音和/或图像,直到预设时长后或者直到检测到录制结束指令后停止采集。
具体地,这里环境声音和/或图像,是指用户终端所处环境中的声音和/或图像,具体用户终端可以通过用户终端的麦克风来采集环境声音,通过用户终端的摄像头采集图像。预设时长可以是任意时长,比如可以是5-10秒。若录制触发指令的触发动作是持续按压,那么录制结束指令的触发动作就可以是停止按压。或者上述特定控件的一次点击用来触发录制触发指令,再一次点击则用来触发录制结束指令。
步骤906,根据采集的声音和/或图像生成第一文件。
具体地,可以将采集的声音的数据形成音频数据,将该音频数据作为第一文件;可以将采集的图像的数据形成视频数据,将该视频数据作为第一文件;还可以按照各自的时间戳将音频数据合并到视频数据中,从而形成第一文件。
本实施例中,用户终端可以实时采集多媒体数据形成多媒体文件并传输给网络接入设备,增加了用户终端与网络接入设备间的互动方式。
在一个实施例中,第二文件为多媒体文件;第二文件根据网络接入设备所采集的声音和/或图像生成。本实施例中网络接入设备可以采用上述步骤902~步骤906来实现采集声音和/或图像以生成第二文件。
如图10所示,在一个实施例中,步骤604具体包括如下步骤:
步骤1002,检测设备账号是否对应在线状态。若是则执行步骤1004,若否则执行步骤1006。
具体地,在线状态是指网络接入设备登录服务器后表示登录有效的状态,瑞对应在线状态,则相应的网络接入设备具有登录后的各种权限。服务器可以通过检测服务器与设备账号所对应的网络接入设备间的第一长连接通道是否有效来检测该设备账号是否对应在线状态。
步骤1004,通过与设备账号所对应的网络接入设备间的第一长连接通道而向网络接入设备传递第一文件传输请求。
具体地,在检测到设备账号对应在线状态后,服务器可直接通过第一长连接通道向网络接入设备传递第一文件传输请求。
步骤1006,缓存第一文件传输请求,直至检测到设备账号对应在线状态时,通过与设备账号所对应的网络接入设备间的第一长连接通道而向网络接入设备传递缓存的第一文件传输请求。
具体地,若检测到设备账号不对应在线状态,则服务器可以先缓存该第一文件传输请求,并继续检测直到检测到设备账号对应在线状态后,再将缓存的第一文件传输请求传输给网络接入设备。
举例说明,服务器可以维护一个离线消息表,将缓存的第一文件传输请求记录在该离线消息表中。该离线消息表可表示为如表二所示:
表二:
发送方(账号) 接收方(账号) 时间 消息类型 参数
123456789 123abcde 2014/10/1016:39 文件传输请求 文件标识1
987654321 123abcde 2014/10/1017:50 文件传输请求 文件标识2
参照上述表二,若网络接入设备对应的设备账号为“123abcde”,当服务器检测到设备账号“123abcde”对应离线状态后,会将文件传输请求作为离线消息对应设备账号存储到表二所示的离线消息表中。当服务器检测到设备账号“123abcde”对应在线状态后,从该离线消息表中提取出设备账号所对应的离线消息,从而将提取出的离线消息传输给网络接入设备。提取出的离线消息包括上述第一文件传输请求。
本实施例中,通过检测网络接入设备的在线状态,在检测到网络接入设备对应在线状态时才发送第一文件传输请求,可以防止文件传输请求丢失。
在一个实施例中,网络接入设备或者用户终端保持与服务器间的长连接通道的方式有两种,第一种是保持与服务器的TCP(Transmission Control Protocol,传输控制协议)连接,第二种则是定时向服务器发送心跳包。TCP连接本身就是面向连接的协议,一旦完成三次握手就可以保持连接。网络接入设备或者用户终端定时发送的心跳包可以维持其在线状态,而且可以定时上报网络接入设备或者用户终端的网络地址,使得服务器可以随时与网络接入设备或用户终端进行通信。这样定时发送心跳包可以维持网络接入设备与服务器之间的NAT穿越状态,使得服务器可以随时与网络接入设备通信。
如图11所示,在一个实施例中,提供了另一种基于物联网的文件传输方法,本实施例以该方法应用于上述图1中的用户终端104来举例说明。该方法具体包括如下步骤:
步骤1102,向服务器发送携带有设备账号的第一文件传输请求,使服务器通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备。
具体地,用户终端可以响应于用户触发的请求触发指令,以向服务器发送携带有设备账号的第一文件传输请求。服务器具有公网网络地址,用户终端可以随时根据该服务器的公网网络地址与该服务器连接通信。该第一文件传输请求是一个消息,该消息具有表示该消息是一个文件传输请求的消息类型标识。第一文件传输请求的描述用于与下述的第二文件传输请求区别开,第一、第二的描述并不限定发生先后顺序。
其中,设备账号是指可以唯一标识出一个网络接入设备的字符串,可以包括数字、字母以及符号中的至少一种,比如设备账号可以是“123456789”。设备账号可以采用网络接入设备的序列号或者MAC地址,还可以由设备厂商按照自定义编码方式生成。设备账号可由网络接入设备的生成厂商固化在网络接入设备中,在需要时读取;设备账号也可以通过服务器注册获得。
用户终端可以提供用户交互界面,根据用户作用于该用户交互界面所触发的文件选择指令选定第一文件,从而自动或者在接收到用户触发的确认传输的指令后,向服务器发送携带有设备账号的第一文件传输请求。设备账号可由用户在该用户交互界面中录入,也可以根据终端账号从服务器查询与该终端账号具有关联的设备账号,当然需要事先进行绑定操作以建立该终端账号和该设备账号间的关联。
第一文件可以是纯文本文件,也可以是多媒体文件。多媒体文件比如可以是包括音频数据、视频数据以及图片的文件,或者可以是音频数据、视频数据以及图片中的至少一种与文本信息共同构成的文件。
在一个实施例中,用户终端可以检测第一文件的文件大小,若大于预设阈值,则向服务器发送携带有设备账号的第一文件传输请求;若小于预设阈值,则生成包括该第一文件的消息而通过服务器直接传输给网络接入设备。本实施例中,若需要传输的第一文件很小,则可以直接将其加入消息中而通过服务器传输给网络接入设备,这样效率更高。
在一个实施例中,基于物联网的文件传输方法还包括:网络接入设备向服务器发送携带有设备账号和设备密码的登录请求,使服务器根据该登录请求完成登录授权后建立与网络接入设备间的第一长连接通道。
设备密码与设备账号对应,是服务器进行鉴权的依据,可以包括数字、字母以及符号中的至少一种。设备密码可以随机生成,也可以采用默认字符串。设备密码可由网络接入设备的生成厂商固化在网络接入设备中,在需要时读取;设备密码也可以通过服务器注册设备账号时一并获得。服务器可以应用户终端的请求来修改网络接入设备的设备密码,并通知网络接入设备,使网络接入设备更新网络接入设备上存储的设备密码。
服务器会对应存储网络接入设备的设备账号和设备密码,还会对应记录表示该存储的账号和密码分别为网络接入设备的设备账号和设备密码的类型标识。
网络接入设备内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样网络接入设备在通电后可立即根据服务器的公网网络地址向服务器发送登录请求,或者网络接入设备可以在预定义的时间点自动触发向服务器发送登录请求,或者网络接入设备还可以在检测到用户触发的登录操作指令后,触发根据服务器的公网网络地址向服务器发送登录请求。该登录请求携带有网络接入设备内置的设备账号和设备密码。
服务器在接收到网络接入设备发来的登录请求后,根据服务器上对应记录的设备账号和设备密码对该登录请求中的设备账号和设备密码进行验证以实现鉴权,验证通过则完成对于网络接入设备的登录授权。然后服务器与网络接入设备之间建立起第一长连接通道。该第一长连接通道是与该设备账号对应的。
在一个实施例中,服务器存储有设备账号和终端账号的关联关系,服务器在接收到用户终端发送的第一文件传输请求后,检查第一文件传输请求所携带的设备账号和终端账号是否存在关联关系,若是则通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备,若否则无动作或者向用户终端返回无访问权限的通知。上述关联关系中终端账号所对应的用户终端具有解除该关联关系的权限,该关联关系被接触后,其它用户终端可以建立新的关联关系。
步骤1104,接收网络接入设备响应于第一文件传输请求而通过服务器所返回的第一确认反馈。
第一确认反馈是用来表示用户接受第一文件传输请求的信息,可以用任意预定义格式的字符串来表示。第一确认反馈是一个消息,可由消息服务器传递。
网络接入设备在接收到第一文件传输请求后做出响应,通过第一长连接通道向服务器返回第一确认反馈。进一步地,网络接入设备可以在接收到第一文件传输请求后,自动向服务器返回第一确认反馈;网络接入设备也可以在接收到第一文件传输请求后,检测用户确认指令,在检测到用户确认指令之后向服务器返回第一确认反馈。当然用户也可以选择拒绝接收文件,此时可通知用户终端文件传输被拒绝。
在一个实施例中,网络接入设备在接收到第一文件传输请求后,可以响应于第一文件传输请求而触发提示操作,并在接收到用户确认指令后向服务器发送第一确认反馈,由服务器接收。其中提示操作可以语音播报、指示灯闪烁等形式进行。用户点击了网络接入设备上的确认接收文件的按键后,或者通过声控方式确认接收文件后,触发用户确认指令。
在一个实施例中,网络接入设备在触发提示操作后开始计时,当计时达到预设时长且未检测到用户确认指令时,根据预定义策略取消提示操作或者触发向服务器发送第一确认反馈。本实施例中,当进行提示操作后,用户若不及时处理,可以根据预定义策略来进行处理,可以及时对第一文件传输请求做出响应。
步骤1106,响应于第一确认反馈,向服务器发送第一连接请求,使服务器将发出第一连接请求的公网网络地址及端口号发送给网络接入设备。
用户终端向服务器发送第一文件传输请求时会携带有源地址,这样服务器就可以根据该源地址确定用户终端在网络中的位置,从而向该用户终端返回第一确认反馈。或者在一个实施例中,服务器可以预先接收用户终端发来的携带有终端账号和终端密码的登录请求,根据该登录请求完成登录授权后建立与用户终端的第二长连接通道。该第二长连接通道是与终端账号对应的。用户终端在向服务器发送第一文件传输请求时可携带有终端账号,从而服务器可以通过该终端账号所对应的第二长连接通道而向用户终端返回第一确认反馈。
用户终端在接收到第一确认反馈后,获知网络接入设备准许传输文件,则此时向服务器发送第一连接请求。该第一连接请求是用于请求建立用户终端与网络接入设备之间的点对点连接通道的消息。用户终端的公网网络地址及端口号,是指用户终端在公网中通信所采用的网络地址及端口号,一般不是用户终端的内网网络地址及端口号,而是用户终端在其内网中经过其网络地址转换设备转换后的网络地址及端口号,转换后的网络地址一般是网络地址转换设备自身的公网网络地址,同一内网中的各个节点共享该公网网络地址。可以理解的是,因存在网络地址转换,发出第一连接请求的公网网络地址及端口号也就是用户终端的公网网络地址及端口号。
步骤1108,接收服务器根据第一连接请求而返回的网络接入设备的公网网络地址及端口号。
与用户终端的公网网络地址及端口号类似,网络接入设备的公网网络地址及端口号,是指网络接入设备在公网中通信所采用的网络地址及端口号。
步骤1110,与网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道。
这里服务器可以分别与用户终端和网络接入设备进行通信,用户终端和网络接入设备通过服务器的协助来实现NAT穿越。具体地,服务器会记录用户终端和网络接入设备各自的公网网络地址及端口号,优选地,记录的公网网络地址及端口号是定时更新的。记录的公网网络地址及端口号是与账号对应的。这样服务器在需要时可以向用户终端和网络接入设备返回NAT穿越所需的对方的公网网络地址和端口号。
步骤1112,通过第一点对点连接通道向网络接入设备传输第一文件。
通过第一点对点连接通道向网络接入设备传输第一文件,相比通过服务器中转效率更高。
上述基于物联网的文件传输方法,服务器与网络接入设备保持第一长连接通道,服务器就可以随时与网络接入设备通信;向服务器发送第一文件传输请求,服务器也可以获知用户终端本地在网络中的通信位置,这样就可以通过服务器而与网络接入设备之间传递消息。在网络接入设备确认后,就可以发起连接请求,获取到网络接入设备的公网网络地址及端口号,用来对网络接入,网络接入设备则获取到用户终端本地的公网网络地址及端口号,这样就可以对网络接入设备和用户终端本地各自的网络地址转换设备进行NAT穿越,从而建立起与网络接入设备之间的点对点传输通道,用来传输文件。这样无论网络接入设备是否直接连接到公网,以及其内网环境如何变化,都可以寻找到网络接入设备,实现向网络接入设备传输第一文件。
如图12所示,在一个实施例中,该基于物联网的文件传输方法还包括从网络接入设备接收第二文件的步骤,具体包括如下步骤:
步骤1202,接收服务器通过第二文件传输请求中的终端账号所对应的第二长连接通道发来的第二文件传输请求;服务器发来的第二文件传输请求由网络接入设备发送给服务器。
具体地,终端账号是指可以标识出一个用户终端的字符串,可以包括数字、字母以及符号中的至少一种。若用户终端是手机,则终端账号可以是手机号,终端账号也可以采用用户在社交网络中的账号,比如即时通信账号。
网络接入设备可以响应于用户触发的请求触发指令,以向服务器发送携带有终端账号的第二文件传输请求。用户终端内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样用户终端可以随时根据该公网网络地址与服务器连接通信。
网络接入设备可以实时采集环境声音和/或图像以形成需要传输的第二文件,然后触发对应于该第二文件的第二文件传输指令。第二文件可以是纯文本文件,也可以是多媒体文件。多媒体文件比如可以是包括音频数据、视频数据以及图片的文件,或者可以是音频数据、视频数据以及图片中的至少一种与文本信息共同构成的文件。
在一个实施例中,网络接入设备可以检测第二文件的文件大小,若大于预设阈值,则向服务器发送携带有终端账号的第二文件传输请求;若小于预设阈值,则生成包括该第二文件的消息而通过服务器直接传输给用户终端。本实施例中,若需要传输的第二文件很小,则可以直接将其加入消息中而通过服务器传输给用户终端,这样效率更高。
用户终端可以预先向服务器发送携带有终端账号和终端密码的登录请求,使服务器根据该登录请求完成登录授权后建立与用户终端间的第二长连接通道。
用户终端的交互能力要强于网络接入设备,用户终端可以提供用户交互界面,该用户交互界面提供终端账号输入框和终端密码输入框,于是用户终端可以获取用户在终端账号输入框中输入的信息作为终端账号,并将终端密码输入框中输入的信息作为终端密码,在接收到用户触发的登录触发指令后,触发向服务器发送携带有终端账号和终端密码的登录请求。
用户终端内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样用户终端可以随时根据该公网网络地址与服务器连接通信。
服务器会对应存储终端账号和终端密码,还会对应记录表示该存储的账号和密码分别为终端账号和终端密码的类型标识。比如上述表一中的“mobile”,就表示相应的账号是终端账号,相应的密码是终端密码。
服务器在接收到用户终端发来的登录请求后,根据服务器上对应记录的终端账号和终端密码来对该登录请求中的终端账号和终端密码进行验证以实现鉴权,验证通过则完成对于该用户终端的登录授权。然后服务器与用户终端之间建立起第二长连接通道并保持。该第二长连接通道是与终端账号对应的。
步骤1204,响应于第二文件传输请求而通过服务器向网络接入设备发送第二确认反馈,以使网络接入设备根据第二确认反馈向服务器发送第二连接请求。
第二确认反馈是用来表示用户接受第二文件传输请求的信息,可以用任意预定义格式的字符串来表示。第二确认反馈是一个消息,可由消息服务器传递。服务器可通过第一长连接通道将第二确认反馈发送给网络接入设备。
用户终端在接收到第二文件传输请求后做出响应,通过第二长连接通道向服务器返回第二确认反馈。进一步地,用户终端可以在接收到第二文件传输请求后,自动向服务器返回第二确认反馈;用户终端也可以在接收到第二文件传输请求后,检测用户确认指令,在检测到用户确认指令之后向服务器返回第二确认反馈。当然用户也可以选择拒绝接收文件,此时可通知网络接入设备文件传输被拒绝。
在一个实施例中,用户终端在接收到第二文件传输请求后,可以响应于第二文件传输请求而触发提示操作,并在接收到用户确认指令后向服务器发送第二确认反馈,由服务器接收。其中提示操作可以语音播报、指示灯闪烁等形式进行。用户点击了用户终端上的确认接收文件的按键后,或者通过声控方式确认接收文件后,或者在用户终端的触摸板上触摸了特定位置后,触发用户确认指令。
在一个实施例中,用户终端在触发提示操作后开始计时,当计时达到预设时长且未检测到用户确认指令时,根据预定义策略取消提示操作或者触发向服务器发送第二确认反馈。本实施例中,当进行提示操作后,用户若不及时处理,可以根据预定义策略来进行处理,可以及时对第二文件传输请求做出响应。
网络接入设备在接收到第二确认反馈后,获知用户终端准许传输文件,则此时向服务器发送第二连接请求。该第二连接请求是用于请求建立网络接入设备与网络接入设备之间的点对点连接通道的消息。该第二连接请求用于使服务器根据该第二连接请求向网络接入设备发送用户终端的公网网络地址及端口号。
步骤1206,接收服务器根据第二连接请求而返回的网络接入设备的公网网络地址及端口号。
第二连接请求还用于使服务器根据第二连接请求,将用户终端的公网网络地址及端口号发送给网络接入设备,并将网络接入设备的公网网络地址及端口号发送给用户终端。
这里服务器可以分别与用户终端和网络接入设备进行通信,用户终端和网络接入设备通过服务器的协助来实现NAT穿越。具体地,服务器会记录用户终端和网络接入设备各自的公网网络地址及端口号,优选地,记录的公网网络地址及端口号是定时更新的。记录的公网网络地址及端口号是与账号对应的。这样服务器在需要时可以向用户终端和网络接入设备返回NAT穿越所需的对方的公网网络地址和端口号。
步骤1208,与网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第二点对点连接通道。
具体地,在服务器的协助下,用户终端通过其网络地址转换设备,并以网络接入设备的公网网络地址及端口号为通信目标发送数据包。并且,网络接入设备则通过其网络地址转换设备,以用户终端的公网网络地址及端口号为通信目标发送数据包,直到用户终端与网络接入设备之间可以成功地双向通信,就可以成功建立点对点连接通道。比如建立用户终端和网络接入设备之间的TCP连接通道。
步骤1210,接收网络接入设备通过第二点对点连接通道发来的第二文件。
成功建立第二点对点连接通道后,用户终端和网络接入设备之间就可以自由通信,不仅可以接收网络接入设备发来的第二文件,还可以通过该第二点对点连接通道而与网络接入设备进行互动。
本实施例中,用户终端和网络接入设备之间可以借助服务器建立点对点连接通道,进而可以高效地传输文件,可适用于各种需要双向传输文件的场景。
在一个实施例中,第一文件和/或第二文件为多媒体文件;第一文件根据用户终端所采集的声音和/或图像生成。第二文件根据网络接入设备所采集的声音和/或图像生成。比如第一文件和第二文件可以是语音留言文件、录像文件等。具体用户终端可以采用上述步骤902~步骤906来采集声音和/或图像以形成第一文件,网络接入设备可以采用上述步骤902~步骤906来采集声音和/或图像以形成第二文件。
在一个实施例中,步骤1102具体包括:向服务器发送携带有设备账号的第一文件传输请求,使服务器检测设备账号是否对应在线状态;若是,则通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备;若否,则通过与设备账号所对应的网络接入设备间的第一长连接通道,将缓存的第一文件传输请求发送给网络接入设备。
具体地,若检测到设备账号不对应在线状态,则服务器可以先缓存该第一文件传输请求,并继续检测直到检测到设备账号对应在线状态后,再将缓存的第一文件传输请求传输给网络接入设备。服务器可以维护一个离线消息表,将缓存的第一文件传输请求记录在该离线消息表中。当服务器检测到设备账号对应在线状态后,从该离线消息表中提取出设备账号所对应的离线消息,从而将提取出的离线消息传输给网络接入设备。提取出的离线消息包括上述第一文件传输请求。
本实施例中,服务器通过检测网络接入设备的在线状态,在检测到网络接入设备对应在线状态时才发送第一文件传输请求,可以防止文件传输请求丢失。
在一个实施例中,网络接入设备或者用户终端保持与服务器间的长连接通道的方式有两种,第一种是保持与服务器的TCP连接,第二种则是定时向服务器发送心跳包。TCP连接本身就是面向连接的协议,一旦完成三次握手就可以保持连接。网络接入设备或者用户终端定时发送的心跳包可以维持其在线状态,而且可以定时上报网络接入设备或者用户终端的网络地址,使得服务器可以随时与网络接入设备或用户终端进行通信。这样定时发送心跳包可以维持网络接入设备与服务器之间的NAT穿越状态,使得服务器可以随时与网络接入设备通信。
如图13所示,在一个实施例中,提供了另一种基于物联网的文件传输方法,本身实施例以该方法应用于上述图1中的网络接入设备106来举例说明。该方法具体包括如下步骤:
步骤1302,接收服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;服务器发来的第一文件传输请求由用户终端发送给服务器。
具体地,用户终端可以响应于用户触发的请求触发指令,以向服务器发送携带有设备账号的第一文件传输请求。服务器具有公网网络地址,用户终端可以随时根据该服务器的公网网络地址与该服务器连接通信。该第一文件传输请求是一个消息,该消息具有表示该消息是一个文件传输请求的消息类型标识。第一文件传输请求的描述用于与下述的第二文件传输请求区别开,第一、第二的描述并不限定发生先后顺序。
其中,设备账号是指可以唯一标识出一个网络接入设备的字符串,可以包括数字、字母以及符号中的至少一种,比如设备账号可以是“123456789”。设备账号可以采用网络接入设备的序列号或者MAC地址,还可以由设备厂商按照自定义编码方式生成。设备账号可由网络接入设备的生成厂商固化在网络接入设备中,在需要时读取;设备账号也可以通过服务器注册获得。
用户终端可以提供用户交互界面,根据用户作用于该用户交互界面所触发的文件选择指令选定第一文件,从而自动或者在接收到用户触发的确认传输的指令后,向服务器发送携带有设备账号的第一文件传输请求。设备账号可由用户在该用户交互界面中录入,也可以根据终端账号从服务器查询与该终端账号具有关联的设备账号,当然需要事先进行绑定操作以建立该终端账号和该设备账号间的关联。
第一文件可以是纯文本文件,也可以是多媒体文件。多媒体文件比如可以是包括音频数据、视频数据以及图片的文件,或者可以是音频数据、视频数据以及图片中的至少一种与文本信息共同构成的文件。
在一个实施例中,用户终端可以检测第一文件的文件大小,若大于预设阈值,则向服务器发送携带有设备账号的第一文件传输请求;若小于预设阈值,则生成包括该第一文件的消息而通过服务器直接传输给网络接入设备。本实施例中,若需要传输的第一文件很小,则可以直接将其加入消息中而通过服务器传输给网络接入设备,这样效率更高。
在一个实施例中,基于物联网的文件传输方法还包括:网络接入设备向服务器发送携带有设备账号和设备密码的登录请求,使服务器根据该登录请求完成登录授权后建立与网络接入设备间的第一长连接通道。
设备密码与设备账号对应,是服务器进行鉴权的依据,可以包括数字、字母以及符号中的至少一种。设备密码可以随机生成,也可以采用默认字符串。设备密码可由网络接入设备的生成厂商固化在网络接入设备中,在需要时读取;设备密码也可以通过服务器注册设备账号时一并获得。服务器可以应用户终端的请求来修改网络接入设备的设备密码,并通知网络接入设备,使网络接入设备更新网络接入设备上存储的设备密码。
服务器会对应存储网络接入设备的设备账号和设备密码,还会对应记录表示该存储的账号和密码分别为网络接入设备的设备账号和设备密码的类型标识。
网络接入设备内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样网络接入设备在通电后可立即根据服务器的公网网络地址向服务器发送登录请求,或者网络接入设备可以在预定义的时间点自动触发向服务器发送登录请求,或者网络接入设备还可以在检测到用户触发的登录操作指令后,触发根据服务器的公网网络地址向服务器发送登录请求。该登录请求携带有网络接入设备内置的设备账号和设备密码。
服务器在接收到网络接入设备发来的登录请求后,根据服务器上对应记录的设备账号和设备密码对该登录请求中的设备账号和设备密码进行验证以实现鉴权,验证通过则完成对于网络接入设备的登录授权。然后服务器与网络接入设备之间建立起第一长连接通道。该第一长连接通道是与该设备账号对应的。
在一个实施例中,服务器存储有设备账号和终端账号的关联关系,服务器在接收到用户终端发送的第一文件传输请求后,检查第一文件传输请求所携带的设备账号和终端账号是否存在关联关系,若是则通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备,若否则无动作或者向用户终端返回无访问权限的通知。上述关联关系中终端账号所对应的用户终端具有解除该关联关系的权限,该关联关系被接触后,其它用户终端可以建立新的关联关系。
步骤1304,响应于第一文件传输请求而通过服务器向用户终端发送第一确认反馈,以使用户终端根据第一确认反馈向服务器发送第一连接请求。
第一确认反馈是用来表示用户接受第一文件传输请求的信息,可以用任意预定义格式的字符串来表示。第一确认反馈是一个消息,可由消息服务器传递。
网络接入设备在接收到第一文件传输请求后做出响应,通过第一长连接通道向服务器返回第一确认反馈。进一步地,网络接入设备可以在接收到第一文件传输请求后,自动向服务器返回第一确认反馈;网络接入设备也可以在接收到第一文件传输请求后,检测用户确认指令,在检测到用户确认指令之后向服务器返回第一确认反馈。当然用户也可以选择拒绝接收文件,此时可通知用户终端文件传输被拒绝。
在一个实施例中,网络接入设备在接收到第一文件传输请求后,可以响应于第一文件传输请求而触发提示操作,并在接收到用户确认指令后向服务器发送第一确认反馈,由服务器接收。其中提示操作可以语音播报、指示灯闪烁等形式进行。用户点击了网络接入设备上的确认接收文件的按键后,或者通过声控方式确认接收文件后,触发用户确认指令。
在一个实施例中,网络接入设备在触发提示操作后开始计时,当计时达到预设时长且未检测到用户确认指令时,根据预定义策略取消提示操作或者触发向服务器发送第一确认反馈。本实施例中,当进行提示操作后,用户若不及时处理,可以根据预定义策略来进行处理,可以及时对第一文件传输请求做出响应。
用户终端向服务器发送第一文件传输请求时会携带有源地址,这样服务器就可以根据该源地址确定用户终端在网络中的位置,从而向该用户终端返回第一确认反馈。或者在一个实施例中,服务器可以预先接收用户终端发来的携带有终端账号和终端密码的登录请求,根据该登录请求完成登录授权后建立与用户终端的第二长连接通道。该第二长连接通道是与终端账号对应的。
用户终端在向服务器发送第一文件传输请求时可携带有终端账号,从而服务器可以通过该终端账号所对应的第二长连接通道而向用户终端返回第一确认反馈。用户终端在接收到第一确认反馈后,获知网络接入设备准许传输文件,则此时向服务器发送第一连接请求。
该第一连接请求是用于请求建立用户终端与网络接入设备之间的点对点连接通道的消息。该第一连接请求用于使服务器根据该第一连接请求以向用户终端发送网络接入设备的公网网络地址及端口号。网络接入设备的公网网络地址及端口号,是指网络接入设备在公网中通信所采用的网络地址及端口号。
步骤1306,接收服务器根据第一连接请求而返回的用户终端的公网网络地址及端口号。
第一连接请求还用于使服务器根据该第一连接请求以向网络接入设备返回用户终端的公网网络地址及端口号。用户终端的公网网络地址及端口号,是指用户终端在公网中通信所采用的网络地址及端口号,一般不是用户终端的内网网络地址及端口号,而是用户终端在其内网中经过其网络地址转换设备转换后的网络地址及端口号,转换后的网络地址一般是网络地址转换设备自身的公网网络地址,同一内网中的各个节点共享该公网网络地址。
这里服务器可以分别与用户终端和网络接入设备进行通信,用户终端和网络接入设备通过服务器的协助来实现NAT穿越。具体地,服务器会记录用户终端和网络接入设备各自的公网网络地址及端口号,优选地,记录的公网网络地址及端口号是定时更新的。记录的公网网络地址及端口号是与账号对应的。这样服务器在需要时可以向用户终端和网络接入设备返回NAT穿越所需的对方的公网网络地址和端口号。
步骤1308,与用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道。
具体地,在服务器的协助下,网络接入设备则通过其网络地址转换设备,以用户终端的公网网络地址及端口号为通信目标发送数据包。并且,用户终端通过其网络地址转换设备,并以网络接入设备的公网网络地址及端口号为通信目标发送数据包,直到网络接入设备与用户终端之间可以成功地双向通信,就可以成功建立点对点连接通道。比如建立网络接入设备与用户终端之间的TCP连接通道。
步骤1310,接收用户终端通过第一点对点连接通道发来的第一文件。
成功建立第一点对点连接通道后,用户终端和网络接入设备之间就可以自由通信,不仅可以接收用户终端发来的第一文件,还可以通过该第一点对点连接通道而与用户终端进行互动。
上述基于物联网的文件传输方法,与服务器保持第一长连接通道,这样服务器就可以随时与网络接入设备本地进行通信;第一文件传输请求来自用户终端,这样就可以实现网络接入设备本地与用户终端之间传递消息。发出第一确认反馈,使得服务器应用户终端发起的连接请求,向用户终端和网络接入设备本地分别提供对方的公网网络地址及端口号,这样网络接入设备本地与用户在终端就可以通过向各自的公网网络地址及端口号发送数据包来实现对各自的网络地址转换设备的NAT穿越,从而可以建立起与用户终端之间的点对点传输通道,用来传输文件。这样无论是否连接到公网,以及内网环境如何变化,都可以接收到用户终端所传输的文件。
如图14所示,在一个实施例中,该基于物联网的文件传输方法还包括向用户终端传输第二文件的步骤,具体包括如下步骤:
步骤1402,向服务器发送携带有终端账号的第二文件传输请求,使服务器通过与终端账号所对应的用户终端间的第二长连接通道,将第二文件传输请求发送给用户终端。
具体地,终端账号是指可以标识出一个用户终端的字符串,可以包括数字、字母以及符号中的至少一种。若用户终端是手机,则终端账号可以是手机号,终端账号也可以采用用户在社交网络中的账号,比如即时通信账号。
网络接入设备可以响应于用户触发的请求触发指令,以向服务器发送携带有终端账号的第二文件传输请求。用户终端内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样用户终端可以随时根据该公网网络地址与服务器连接通信。
网络接入设备可以实时采集环境声音和/或图像以形成需要传输的第二文件,然后触发对应于该第二文件的第二文件传输指令。第二文件可以是纯文本文件,也可以是多媒体文件。多媒体文件比如可以是包括音频数据、视频数据以及图片的文件,或者可以是音频数据、视频数据以及图片中的至少一种与文本信息共同构成的文件。
在一个实施例中,网络接入设备可以检测第二文件的文件大小,若大于预设阈值,则向服务器发送携带有终端账号的第二文件传输请求;若小于预设阈值,则生成包括该第二文件的消息而通过服务器直接传输给用户终端。本实施例中,若需要传输的第二文件很小,则可以直接将其加入消息中而通过服务器传输给用户终端,这样效率更高。
用户终端可以预先向服务器发送携带有终端账号和终端密码的登录请求,使服务器根据该登录请求完成登录授权后建立与用户终端间的第二长连接通道。
用户终端的交互能力要强于网络接入设备,用户终端可以提供用户交互界面,该用户交互界面提供终端账号输入框和终端密码输入框,于是用户终端可以获取用户在终端账号输入框中输入的信息作为终端账号,并将终端密码输入框中输入的信息作为终端密码,在接收到用户触发的登录触发指令后,触发向服务器发送携带有终端账号和终端密码的登录请求。
用户终端内置有服务器的公网网络地址,或者,内置有可以查询到该公网网络地址的服务器域名,这样用户终端可以随时根据该公网网络地址与服务器连接通信。
服务器会对应存储终端账号和终端密码,还会对应记录表示该存储的账号和密码分别为终端账号和终端密码的类型标识。比如上述表一中的“mobile”,就表示相应的账号是终端账号,相应的密码是终端密码。
服务器在接收到用户终端发来的登录请求后,根据服务器上对应记录的终端账号和终端密码来对该登录请求中的终端账号和终端密码进行验证以实现鉴权,验证通过则完成对于该用户终端的登录授权。然后服务器与用户终端之间建立起第二长连接通道并保持。该第二长连接通道是与终端账号对应的。
步骤1404,接收用户终端响应于第二文件传输请求而通过服务器所返回的第二确认反馈。
第二确认反馈是用来表示用户接受第二文件传输请求的信息,可以用任意预定义格式的字符串来表示。第二确认反馈是一个消息,可由消息服务器传递。服务器可通过第一长连接通道将第二确认反馈发送给网络接入设备。
步骤1406,响应于第二确认反馈,向服务器发送第二连接请求,使服务器将发出第二连接请求的公网网络地址及端口号发送给用户终端。
用户终端在接收到第二文件传输请求后做出响应,通过第二长连接通道向服务器返回第二确认反馈。进一步地,用户终端可以在接收到第二文件传输请求后,自动向服务器返回第二确认反馈;用户终端也可以在接收到第二文件传输请求后,检测用户确认指令,在检测到用户确认指令之后向服务器返回第二确认反馈。当然用户也可以选择拒绝接收文件,此时可通知网络接入设备文件传输被拒绝。
在一个实施例中,用户终端在接收到第二文件传输请求后,可以响应于第二文件传输请求而触发提示操作,并在接收到用户确认指令后向服务器发送第二确认反馈,由服务器接收。其中提示操作可以语音播报、指示灯闪烁等形式进行。用户点击了用户终端上的确认接收文件的按键后,或者通过声控方式确认接收文件后,或者在用户终端的触摸板上触摸了特定位置后,触发用户确认指令。
在一个实施例中,用户终端在触发提示操作后开始计时,当计时达到预设时长且未检测到用户确认指令时,根据预定义策略取消提示操作或者触发向服务器发送第二确认反馈。本实施例中,当进行提示操作后,用户若不及时处理,可以根据预定义策略来进行处理,可以及时对第二文件传输请求做出响应。
网络接入设备在接收到第二确认反馈后,获知用户终端准许传输文件,则此时向服务器发送第二连接请求。该第二连接请求是用于请求建立网络接入设备与网络接入设备之间的点对点连接通道的消息。第二连接请求用于使服务器根据该第二连接请求,将网络接入设备的公网网络地址及端口号发送给用户终端。
步骤1408,接收服务器根据第二连接请求而返回的用户终端的公网网络地址及端口号。
该第二连接请求用于使服务器根据该第二连接请求向网络接入设备发送用户终端的公网网络地址及端口号。这里服务器可以分别与用户终端和网络接入设备进行通信,用户终端和网络接入设备通过服务器的协助来实现NAT穿越。具体地,服务器会记录用户终端和网络接入设备各自的公网网络地址及端口号,优选地,记录的公网网络地址及端口号是定时更新的。记录的公网网络地址及端口号是与账号对应的。这样服务器在需要时可以向用户终端和网络接入设备返回NAT穿越所需的对方的公网网络地址和端口号。
步骤1410,与用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第二点对点连接通道。
具体地,在服务器的协助下,用户终端通过其网络地址转换设备,并以网络接入设备的公网网络地址及端口号为通信目标发送数据包。并且,网络接入设备则通过其网络地址转换设备,以用户终端的公网网络地址及端口号为通信目标发送数据包,直到用户终端与网络接入设备之间可以成功地双向通信,就可以成功建立点对点连接通道。比如建立用户终端和网络接入设备之间的TCP连接通道。
步骤1412,通过第二点对点连接通道向用户终端传输第二文件。
成功建立第二点对点连接通道后,网络接入设备和用户终端之间就可以自由通信,不仅可以接收用户终端发来的第二文件,还可以通过该第二点对点连接通道而与用户终端进行互动。
本实施例中,网络接入设备和用户终端之间可以借助服务器建立点对点连接通道,进而可以高效地传输文件,可适用于各种需要双向传输文件的场景。
在一个实施例中,第一文件和/或第二文件为多媒体文件;第一文件根据用户终端所采集的声音和/或图像生成。第二文件根据网络接入设备所采集的声音和/或图像生成。比如第一文件和第二文件可以是语音留言文件、录像文件等。具体用户终端可以采用上述步骤902~步骤906来采集声音和/或图像以形成第一文件,网络接入设备可以采用上述步骤902~步骤906来采集声音和/或图像以形成第二文件。
在一个实施例中,步骤1302中接收服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求的步骤,具体包括:当服务器检测到设备账号对应在线状态后,接收服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;或者,当服务器在检测到设备账号不对应在线状态并缓存第一文件传输请求后,接收服务器在继续检测直至检测到设备账号对应在线状态时而通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的缓存的第一文件传输请求。
具体地,若检测到设备账号不对应在线状态,则服务器可以先缓存该第一文件传输请求,并继续检测直到检测到设备账号对应在线状态后,再将缓存的第一文件传输请求传输给网络接入设备。服务器可以维护一个离线消息表,将缓存的第一文件传输请求记录在该离线消息表中。当服务器检测到设备账号对应在线状态后,从该离线消息表中提取出设备账号所对应的离线消息,从而将提取出的离线消息传输给网络接入设备。提取出的离线消息包括上述第一文件传输请求。
本实施例中,服务器通过检测网络接入设备的在线状态,在检测到网络接入设备对应在线状态时才发送第一文件传输请求,可以防止文件传输请求丢失。
在一个实施例中,网络接入设备或者用户终端保持与服务器间的长连接通道的方式有两种,第一种是保持与服务器的TCP连接,第二种则是定时向服务器发送心跳包。TCP连接本身就是面向连接的协议,一旦完成三次握手就可以保持连接。网络接入设备或者用户终端定时发送的心跳包可以维持其在线状态,而且可以定时上报网络接入设备或者用户终端的网络地址,使得服务器可以随时与网络接入设备或用户终端进行通信。这样定时发送心跳包可以维持网络接入设备与服务器之间的NAT穿越状态,使得服务器可以随时与网络接入设备通信。
如图15所示,在一个实施例中,提供了一种基于物联网的文件传输装置1500,具有实现上述适用于服务器102的任意实施例的基于物联网的文件传输方法的功能。该基于物联网的文件传输装置1500包括:文件传输请求处理模块1502、确认反馈处理模块1504和连接请求处理模块1506。
文件传输请求处理模块1502,用于接收用户终端发来的携带有设备账号的第一文件传输请求;通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备。
确认反馈处理模块1504,用于接收网络接入设备响应于第一文件传输请求而返回的第一确认反馈;将第一确认反馈发送给用户终端。
连接请求处理模块1506,用于接收用户终端在收到第一确认反馈后发来的第一连接请求;根据第一连接请求,将用户终端的公网网络地址及端口号发送给网络接入设备,并将网络接入设备的公网网络地址及端口号发送给用户终端,以使用户终端和网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第一点对点连接通道,并通过该第一点对点连接通道传输第一文件。
在一个实施例中,文件传输请求处理模块1502还用于接收网络接入设备发来的携带有终端账号的第二文件传输请求;通过与终端账号所对应的用户终端间的第二长连接通道,将第二文件传输请求发送给用户终端。
确认反馈处理模块1504还用于接收用户终端响应于第二文件传输请求而返回的第二确认反馈;将第二确认反馈发送给网络接入设备。
连接请求处理模块1506还用于接收网络接入设备在收到第二确认反馈后发来的第二连接请求;根据第二连接请求,将用户终端的公网网络地址及端口号发送给网络接入设备,并将网络接入设备的公网网络地址及端口号发送给用户终端,以使用户终端和网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第二点对点连接通道,并通过该第二点对点连接通道传输第二文件。
在一个实施例中,第一文件和/或第二文件为多媒体文件;第一文件根据用户终端所采集的声音和/或图像生成,第二文件根据网络接入设备所采集的声音和/或图像生成。
在一个实施例中,文件传输请求处理模块1502还用于检测设备账号是否对应在线状态;若是则通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备;若否则缓存第一文件传输请求,直至检测到设备账号对应在线状态时,通过与设备账号所对应的网络接入设备间的第一长连接通道,将缓存的第一文件传输请求发送给网络接入设备。
上述基于物联网的文件传输装置1500,与网络接入设备保持第一长连接通道,可以随时与网络接入设备通信;接收到用户终端发来的第一文件传输请求,就可以获知用户终端在网络中的通信位置,这样就可以实现在用户终端和网络接入设备之间传递消息。在网络接入设备确认后,就可以应用户终端的连接请求,向用户终端和网络接入设备分别提供对方的公网网络地址及端口号,使得用户终端和网络接入设备可以根据获取到的对方的公网网络地址及端口号来对对方的网络地址转换设备进行NAT穿越,从而可以建立起用户终端和网络接入设备之间的点对点传输通道,用来传输文件。这样无论网络接入设备是否直接连接到公网,以及其内网环境如何变化,都可以寻找到网络接入设备,实现用户终端向网络接入设备传输第一文件。
如图16所示,在一个实施例中,提供了另一种基于物联网的文件传输装置1600,具有实现上述适用于用户终端104的各个实施例的基于物联网的文件传输方法的功能。该基于物联网的文件传输装置1600包括:文件传输请求发送模块1602、确认反馈接收模块1604、连接请求发送模块1606、公网网络地址及端口号接收模块1608、连接通道建立模块1610和文件传输模块1612。
文件传输请求发送模块1602,用于向服务器发送携带有设备账号的第一文件传输请求,使服务器通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备。
确认反馈接收模块1604,用于接收网络接入设备响应于第一文件传输请求而通过服务器所返回的第一确认反馈。
连接请求发送模块1606,用于响应于第一确认反馈,向服务器发送第一连接请求,使服务器将发出第一连接请求的公网网络地址及端口号发送给网络接入设备。
公网网络地址及端口号接收模块1608,用于接收服务器根据第一连接请求而返回的网络接入设备的公网网络地址及端口号。
连接通道建立模块1610,用于与网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道。
文件传输模块1612,用于通过第一点对点连接通道向网络接入设备传输第一文件。
如图17所示,在一个实施例中,该基于物联网的文件传输装置1600还包括:文件传输请求接收模块1614和确认反馈发送模块1616。
文件传输请求接收模块1614,用于接收服务器通过第二文件传输请求中的终端账号所对应的第二长连接通道发来的第二文件传输请求;服务器发来的第二文件传输请求由网络接入设备发送给服务器。
确认反馈发送模块1616,用于响应于第二文件传输请求而通过服务器向网络接入设备发送第二确认反馈,以使网络接入设备根据第二确认反馈向服务器发送第二连接请求。
公网网络地址及端口号接收模块1608还用于接收服务器根据第二连接请求而返回的网络接入设备的公网网络地址及端口号。
连接通道建立模块1610还用于与网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第二点对点连接通道;
文件传输模块1612还用于接收网络接入设备通过第二点对点连接通道发来的第二文件。
在一个实施例中,第一文件和/或第二文件为多媒体文件;第一文件根据用户终端所采集的声音和/或图像生成,第二文件根据网络接入设备所采集的声音和/或图像生成。
如图18所示,在一个实施例中,该基于物联网的文件传输装置1600还包括:采集模块1618,用于检测录制触发指令;根据录制触发指令开始采集环境声音和/或图像,直到预设时长后或者直到检测到录制结束指令后停止采集;根据采集的声音和/或图像生成第一文件。
在一个实施例中,文件传输请求发送模块1602还用于向服务器发送携带有设备账号的第一文件传输请求,使服务器检测设备账号是否对应在线状态;若是,则通过与设备账号所对应的网络接入设备间的第一长连接通道,将第一文件传输请求发送给网络接入设备;若否,则通过与设备账号所对应的网络接入设备间的第一长连接通道,将缓存的第一文件传输请求发送给网络接入设备。
上述基于物联网的文件传输装置1600,服务器与网络接入设备保持第一长连接通道,服务器就可以随时与网络接入设备通信;向服务器发送第一文件传输请求,服务器也可以获知用户终端本地在网络中的通信位置,这样就可以通过服务器而与网络接入设备之间传递消息。在网络接入设备确认后,就可以发起连接请求,获取到网络接入设备的公网网络地址及端口号,用来对网络接入,网络接入设备则获取到用户终端本地的公网网络地址及端口号,这样就可以对网络接入设备和用户终端本地各自的网络地址转换设备进行NAT穿越,从而建立起与网络接入设备之间的点对点传输通道,用来传输文件。这样无论网络接入设备是否直接连接到公网,以及其内网环境如何变化,都可以寻找到网络接入设备,实现向网络接入设备传输第一文件。
如图19所示,在一个实施例中,提供了一种基于物联网的文件传输装置1900,具有实现上述适用于网络接入设备106的各个实施例的基于物联网的文件传输方法的功能。该基于物联网的文件传输装置1900包括:文件传输请求接收单元1902、确认反馈发送单元1904、公网网络地址及端口号接收单元1906、连接通道建立单元1908和文件传输单元1910。
文件传输请求接收单元1902,接收服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;服务器发来的第一文件传输请求由用户终端发送给服务器。
确认反馈发送单元1904,用于响应于第一文件传输请求而通过服务器向用户终端发送第一确认反馈,以使用户终端根据第一确认反馈向服务器发送第一连接请求。
公网网络地址及端口号接收单元1906,用于接收服务器根据第一连接请求而返回的用户终端的公网网络地址及端口号。
连接通道建立单元1908,用于与用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道。
文件传输单元1910,用于接收用户终端通过第一点对点连接通道发来的第一文件。
如图20所示,在一个实施例中,该基于物联网的文件传输装置还包括:文件传输请求发送单元1912、确认反馈接收单元1914和连接请求发送单元1916。
文件传输请求发送单元1912,用于向服务器发送携带有终端账号的第二文件传输请求,使服务器通过与终端账号所对应的用户终端间的第二长连接通道,将第二文件传输请求发送给用户终端。
确认反馈接收单元1914,用于接收用户终端响应于第二文件传输请求而通过服务器所返回的第二确认反馈。
连接请求发送单元1916,用于响应于第二确认反馈,向服务器发送第二连接请求,使服务器将发出第二连接请求的公网网络地址及端口号发送给用户终端。
公网网络地址及端口号接收单元1906还用于接收服务器根据第二连接请求而返回的用户终端的公网网络地址及端口号。
连接通道建立单元1908还用于与用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第二点对点连接通道。
文件传输单元1910还用于通过第二点对点连接通道向用户终端传输第二文件。
在一个实施例中,第一文件和/或第二文件为多媒体文件;第一文件根据用户终端所采集的声音和/或图像生成,第二文件根据网络接入设备所采集的声音和/或图像生成。
在一个实施例中,文件传输请求接收单元1902还用于当服务器检测到设备账号对应在线状态后,接收服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;或者,文件传输请求接收单元1902还用于当服务器在检测到设备账号不对应在线状态并缓存第一文件传输请求后,接收服务器在继续检测直至检测到设备账号对应在线状态时而通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的缓存的第一文件传输请求。
上述基于物联网的文件传输装置1900,与服务器保持第一长连接通道,这样服务器就可以随时与网络接入设备本地进行通信;第一文件传输请求来自用户终端,这样就可以实现网络接入设备本地与用户终端之间传递消息。发出第一确认反馈,使得服务器应用户终端发起的连接请求,向用户终端和网络接入设备本地分别提供对方的公网网络地址及端口号,这样网络接入设备本地与用户在终端就可以通过向各自的公网网络地址及端口号发送数据包来实现对各自的网络地址转换设备的NAT穿越,从而可以建立起与用户终端之间的点对点传输通道,用来传输文件。这样无论是否连接到公网,以及内网环境如何变化,都可以接收到用户终端所传输的文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (28)

1.一种基于物联网的文件传输方法,所述方法包括:
接收用户终端发来的携带有设备账号的第一文件传输请求;
通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
接收所述网络接入设备响应于所述第一文件传输请求而返回的第一确认反馈;
将所述第一确认反馈发送给所述用户终端;
接收所述用户终端在收到所述第一确认反馈后发来的第一连接请求;
根据所述第一连接请求,将所述用户终端的公网网络地址及端口号发送给所述网络接入设备,并将所述网络接入设备的公网网络地址及端口号发送给所述用户终端,以使所述用户终端和所述网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第一点对点连接通道,并通过该第一点对点连接通道传输第一文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收网络接入设备发来的携带有终端账号的第二文件传输请求;
通过与所述终端账号所对应的用户终端间的第二长连接通道,将所述第二文件传输请求发送给所述用户终端;
接收所述用户终端响应于所述第二文件传输请求而返回的第二确认反馈;
将所述第二确认反馈发送给所述网络接入设备;
接收所述网络接入设备在收到所述第二确认反馈后发来的第二连接请求;
根据所述第二连接请求,将所述用户终端的公网网络地址及端口号发送给所述网络接入设备,并将所述网络接入设备的公网网络地址及端口号发送给所述用户终端,以使所述用户终端和所述网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第二点对点连接通道,并通过该第二点对点连接通道传输第二文件。
3.根据权利要求1所述的方法,其特征在于,所述第一文件为多媒体文件;所述第一文件根据所述用户终端所采集的声音和/或图像生成。
4.根据权利要求1所述的方法,其特征在于,所述通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备,包括:
检测所述设备账号是否对应在线状态;
若是则通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
若否则缓存所述第一文件传输请求,直至检测到所述设备账号对应在线状态时,通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将缓存的第一文件传输请求发送给所述网络接入设备。
5.一种基于物联网的文件传输方法,所述方法包括:
向服务器发送携带有设备账号的第一文件传输请求,使所述服务器通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
接收所述网络接入设备响应于所述第一文件传输请求而通过所述服务器所返回的第一确认反馈;
响应于所述第一确认反馈,向所述服务器发送第一连接请求,使所述服务器将发出所述第一连接请求的公网网络地址及端口号发送给所述网络接入设备;
接收所述服务器根据所述第一连接请求而返回的所述网络接入设备的公网网络地址及端口号;
与所述网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道;
通过所述第一点对点连接通道向所述网络接入设备传输第一文件。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述服务器通过第二文件传输请求中的终端账号所对应的第二长连接通道发来的第二文件传输请求;所述服务器发来的第二文件传输请求由网络接入设备发送给所述服务器;
响应于所述第二文件传输请求而通过所述服务器向所述网络接入设备发送第二确认反馈,以使所述网络接入设备根据所述第二确认反馈向所述服务器发送第二连接请求;
接收所述服务器根据所述第二连接请求而返回的所述网络接入设备的公网网络地址及端口号;
与所述网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第二点对点连接通道;
接收所述网络接入设备通过所述第二点对点连接通道发来的第二文件。
7.根据权利要求6所述的方法,其特征在于,所述第一文件为多媒体文件;所述方法还包括:
检测录制触发指令;
根据所述录制触发指令开始采集环境声音和/或图像,直到预设时长后或者直到检测到录制结束指令后停止采集;
根据所述采集的声音和/或图像生成所述第一文件。
8.根据权利要求5所述的方法,其特征在于,所述向服务器发送携带有设备账号的第一文件传输请求,使所述服务器通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备,包括:
向服务器发送携带有设备账号的第一文件传输请求,使所述服务器检测所述设备账号是否对应在线状态;
若是,则通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
若否,则通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将缓存的第一文件传输请求发送给所述网络接入设备。
9.一种基于物联网的文件传输方法,所述方法包括:
接收服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;所述服务器发来的第一文件传输请求由用户终端发送给所述服务器;
响应于所述第一文件传输请求而通过所述服务器向所述用户终端发送第一确认反馈,以使所述用户终端根据所述第一确认反馈向所述服务器发送第一连接请求;
接收所述服务器根据所述第一连接请求而返回的所述用户终端的公网网络地址及端口号;
与所述用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道;
接收所述用户终端通过所述第一点对点连接通道发来的第一文件。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
向服务器发送携带有终端账号的第二文件传输请求,使所述服务器通过与所述终端账号所对应的用户终端间的第二长连接通道,将所述第二文件传输请求发送给所述用户终端;
接收所述用户终端响应于所述第二文件传输请求而通过所述服务器所返回的第二确认反馈;
响应于所述第二确认反馈,向所述服务器发送第二连接请求,使所述服务器将发出所述第二连接请求的公网网络地址及端口号发送给所述用户终端;
接收所述服务器根据所述第二连接请求而返回的所述用户终端的公网网络地址及端口号;
与所述用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第二点对点连接通道;
通过所述第二点对点连接通道向所述用户终端传输第二文件。
11.根据权利要求9所述的方法,其特征在于,所述第一文件为多媒体文件;所述第一文件根据所述用户终端所采集的声音和/或图像生成。
12.根据权利要求9所述的方法,其特征在于,所述接收所述服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求,包括:
当所述服务器检测到所述设备账号对应在线状态后,接收所述服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;或者,
当所述服务器在检测到所述设备账号不对应在线状态并缓存所述第一文件传输请求后,接收所述服务器在继续检测直至检测到所述设备账号对应在线状态时而通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的缓存的第一文件传输请求。
13.一种基于物联网的文件传输装置,其特征在于,所述装置包括:
文件传输请求处理模块,用于接收用户终端发来的携带有设备账号的第一文件传输请求;通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
确认反馈处理模块,用于接收所述网络接入设备响应于所述第一文件传输请求而返回的第一确认反馈;将所述第一确认反馈发送给所述用户终端;
连接请求处理模块,用于接收所述用户终端在收到所述第一确认反馈后发来的第一连接请求;根据所述第一连接请求,将所述用户终端的公网网络地址及端口号发送给所述网络接入设备,并将所述网络接入设备的公网网络地址及端口号发送给所述用户终端,以使所述用户终端和所述网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第一点对点连接通道,并通过该第一点对点连接通道传输第一文件。
14.根据权利要求13所述的文件传输装置,其特征在于,所述文件传输请求处理模块还用于接收网络接入设备发来的携带有终端账号的第二文件传输请求;通过与所述终端账号所对应的用户终端间的第二长连接通道,将所述第二文件传输请求发送给所述用户终端;
所述确认反馈处理模块还用于接收所述用户终端响应于所述第二文件传输请求而返回的第二确认反馈;将所述第二确认反馈发送给所述网络接入设备;
所述连接请求处理模块还用于接收所述网络接入设备在收到所述第二确认反馈后发来的第二连接请求;根据所述第二连接请求,将所述用户终端的公网网络地址及端口号发送给所述网络接入设备,并将所述网络接入设备的公网网络地址及端口号发送给所述用户终端,以使所述用户终端和所述网络接入设备各自向对方的公网网络地址及端口号发送数据包直至成功建立第二点对点连接通道,并通过该第二点对点连接通道传输第二文件。
15.根据权利要求13所述的文件传输装置,其特征在于,所述第一文件为多媒体文件;所述第一文件根据所述用户终端所采集的声音和/或图像生成。
16.根据权利要求13所述的文件传输装置,其特征在于,所述文件传输请求处理模块还用于检测所述设备账号是否对应在线状态;若是则通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;若否则缓存所述第一文件传输请求,直至检测到所述设备账号对应在线状态时,通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将缓存的第一文件传输请求发送给所述网络接入设备。
17.一种基于物联网的文件传输装置,其特征在于,所述装置包括:
文件传输请求发送模块,用于向服务器发送携带有设备账号的第一文件传输请求,使所述服务器通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;
确认反馈接收模块,用于接收所述网络接入设备响应于所述第一文件传输请求而通过所述服务器所返回的第一确认反馈;
连接请求发送模块,用于响应于所述第一确认反馈,向所述服务器发送第一连接请求,使所述服务器将发出所述第一连接请求的公网网络地址及端口号发送给所述网络接入设备;
公网网络地址及端口号接收模块,用于接收所述服务器根据所述第一连接请求而返回的所述网络接入设备的公网网络地址及端口号;
连接通道建立模块,用于与所述网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道;
文件传输模块,用于通过所述第一点对点连接通道向所述网络接入设备传输第一文件。
18.根据权利要求17所述的文件传输装置,其特征在于,所述文件传输装置还包括:文件传输请求接收模块和确认反馈发送模块;
所述文件传输请求接收模块,用于接收所述服务器通过第二文件传输请求中的终端账号所对应的第二长连接通道发来的第二文件传输请求;所述服务器发来的第二文件传输请求由网络接入设备发送给所述服务器;
所述确认反馈发送模块,用于响应于所述第二文件传输请求而通过所述服务器向所述网络接入设备发送第二确认反馈,以使所述网络接入设备根据所述第二确认反馈向所述服务器发送第二连接请求;
所述公网网络地址及端口号接收模块,还用于接收所述服务器根据所述第二连接请求而返回的所述网络接入设备的公网网络地址及端口号;
所述连接通道建立模块,还用于与所述网络接入设备之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第二点对点连接通道;
所述文件传输模块,还用于接收所述网络接入设备通过所述第二点对点连接通道发来的第二文件。
19.根据权利要求18所述的文件传输装置,其特征在于,所述第一文件为多媒体文件;所述文件传输装置还包括:
采集模块,用于检测录制触发指令;根据所述录制触发指令开始采集环境声音和/或图像,直到预设时长后或者直到检测到录制结束指令后停止采集;根据所述采集的声音和/或图像生成所述第一文件。
20.根据权利要求17所述的文件传输装置,其特征在于,所述文件传输请求发送模块还用于向服务器发送携带有设备账号的第一文件传输请求,使所述服务器检测所述设备账号是否对应在线状态;若是,则通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将所述第一文件传输请求发送给所述网络接入设备;若否,则通过与所述设备账号所对应的网络接入设备间的第一长连接通道,将缓存的第一文件传输请求发送给所述网络接入设备。
21.一种基于物联网的文件传输装置,其特征在于,所述装置包括:
文件传输请求接收单元,接收服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;所述服务器发来的第一文件传输请求由用户终端发送给所述服务器;
确认反馈发送单元,用于响应于所述第一文件传输请求而通过所述服务器向所述用户终端发送第一确认反馈,以使所述用户终端根据所述第一确认反馈向所述服务器发送第一连接请求;
公网网络地址及端口号接收单元,用于接收所述服务器根据所述第一连接请求而返回的所述用户终端的公网网络地址及端口号;
连接通道建立单元,用于与所述用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第一点对点连接通道;
文件传输单元,用于接收所述用户终端通过所述第一点对点连接通道发来的第一文件。
22.根据权利要求21所述的文件传输装置,其特征在于,所述文件传输装置还包括:
文件传输请求发送单元,用于向服务器发送携带有终端账号的第二文件传输请求,使所述服务器通过与所述终端账号所对应的用户终端间的第二长连接通道,将所述第二文件传输请求发送给所述用户终端;
确认反馈接收单元,用于接收所述用户终端响应于所述第二文件传输请求而通过所述服务器所返回的第二确认反馈;
连接请求发送单元,用于响应于所述第二确认反馈,向所述服务器发送第二连接请求,使所述服务器将发出所述第二连接请求的公网网络地址及端口号发送给所述用户终端;
所述公网网络地址及端口号接收单元还用于接收所述服务器根据所述第二连接请求而返回的所述用户终端的公网网络地址及端口号;
所述连接通道建立单元还用于与所述用户终端之间彼此向对方的公网网络地址及端口号发送数据包,直至成功建立第二点对点连接通道;
所述文件传输单元还用于通过所述第二点对点连接通道向所述用户终端传输第二文件。
23.根据权利要求21所述的文件传输装置,其特征在于,所述第一文件为多媒体文件;所述第一文件根据所述用户终端所采集的声音和/或图像生成。
24.根据权利要求21所述的文件传输装置,其特征在于,所述文件传输请求接收单元还用于当所述服务器检测到所述设备账号对应在线状态后,接收所述服务器通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的第一文件传输请求;或者,
所述文件传输请求接收单元还用于当所述服务器在检测到所述设备账号不对应在线状态并缓存所述第一文件传输请求后,接收所述服务器在继续检测直至检测到所述设备账号对应在线状态时而通过第一文件传输请求中的设备账号所对应的第一长连接通道发来的缓存的第一文件传输请求。
25.一种服务器,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述方法的步骤。
26.一种用户终端,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求5至8中任一项所述方法的步骤。
27.一种网络接入设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求9至12中任一项所述方法的步骤。
28.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
CN201410848460.XA 2014-12-29 2014-12-29 基于物联网的文件传输方法和装置 Active CN105812422B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410848460.XA CN105812422B (zh) 2014-12-29 2014-12-29 基于物联网的文件传输方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410848460.XA CN105812422B (zh) 2014-12-29 2014-12-29 基于物联网的文件传输方法和装置

Publications (2)

Publication Number Publication Date
CN105812422A CN105812422A (zh) 2016-07-27
CN105812422B true CN105812422B (zh) 2019-12-20

Family

ID=56421035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410848460.XA Active CN105812422B (zh) 2014-12-29 2014-12-29 基于物联网的文件传输方法和装置

Country Status (1)

Country Link
CN (1) CN105812422B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110519383A (zh) * 2019-08-30 2019-11-29 山东浪潮商用系统有限公司 一种适用于自助终端设备的电子文件提交方法
CN110971701B (zh) * 2019-12-10 2022-08-23 广州番禺职业技术学院 物联网通信方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1679873A1 (en) * 2005-01-07 2006-07-12 Samsung Electronics Co., Ltd. Registering phone numbers of wireless terminals
CN101964785A (zh) * 2010-09-19 2011-02-02 中兴通讯股份有限公司 Nat网络中sip终端间文件传输的方法、终端及系统
CN102821057A (zh) * 2011-06-09 2012-12-12 腾讯科技(深圳)有限公司 文件传送方法、装置和系统
CN103561063A (zh) * 2013-10-22 2014-02-05 深圳创维数字技术股份有限公司 一种登录机顶盒的方法及终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1679873A1 (en) * 2005-01-07 2006-07-12 Samsung Electronics Co., Ltd. Registering phone numbers of wireless terminals
CN101964785A (zh) * 2010-09-19 2011-02-02 中兴通讯股份有限公司 Nat网络中sip终端间文件传输的方法、终端及系统
CN102821057A (zh) * 2011-06-09 2012-12-12 腾讯科技(深圳)有限公司 文件传送方法、装置和系统
CN103561063A (zh) * 2013-10-22 2014-02-05 深圳创维数字技术股份有限公司 一种登录机顶盒的方法及终端

Also Published As

Publication number Publication date
CN105812422A (zh) 2016-07-27

Similar Documents

Publication Publication Date Title
CN105812402B (zh) 基于物联网的文件传输方法和装置
CN105656680B (zh) 一种网络摄像机控制方法及装置
EP2122922B1 (en) Remote control using instant messaging
CN101170687B (zh) 基于视频监控的前端录像点播穿越nat的方法
US20170034174A1 (en) Method for providing access to a web server
US7853703B1 (en) Methods and apparatuses for identification of device presence
CN104539902B (zh) 一种ipc的远程访问方法和系统
CN105357212A (zh) 一种保证安全和隐私的dns端到端解析方法
JP5122587B2 (ja) 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、接続制御システム、及びプログラム
KR102270909B1 (ko) 멀티미디어 공유 방법, 등록 방법, 서버 및 프록시 서버
CN103532833A (zh) 一种业务系统访问方法、终端及代理服务系统
CN103338213A (zh) 本地设备与ims网络互通的方法、系统及接入网关
CN103929438A (zh) 基于网页浏览器通信的防火墙穿越方法、设备和系统
CN101325587A (zh) 一种dhcp会话监测方法
CN104883339A (zh) 一种用户隐私保护的方法、设备和系统
CN105812422B (zh) 基于物联网的文件传输方法和装置
US10742751B2 (en) User based mDNS service discovery
CN108023877A (zh) 一种基于家庭网关实现防火墙域名控制的系统方法
CN104168302B (zh) 设备操控实现方法、系统和代理网关
JP4886712B2 (ja) アクセス制御システム、アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
CN101146103A (zh) 一种可实现宽带接入设备安全防护稳定性的方法
CN105721274A (zh) 一种多种即时通讯的融合方法及装置
KR101710033B1 (ko) 유동 ip기기 간 상시 연결성 유지 방법 및 이를 위한 장치
CN104301197B (zh) 一种实现用户多终端间相互发现的方法与系统
JP2012527794A (ja) ホストアイデンティティタグ取得のための方法およびシステム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant