一种基于蓝牙点对点的数据传输方法及其系统技术方案

技术编号:24862356 阅读:34 留言:0更新日期:2020-07-10 19:13
本发明专利技术提供一种基于蓝牙点对点的数据传输方法及其系统,方法包括:设备A依据所述信息A创建对应的会话ID Session A;将信息A拆分成两个以上的数据包;依据拆分顺序生成各个数据包对应的哈希值index,并将其分别与哈希值Token A组成传输包体;发送各个传输包体至网内其他设备;设备B接收第一个传输包体;创建会话对象SA,并以第一个传输包体中的会话ID Session A为键,会话对象SA为值存入哈希表;当设备B再次接收到包含会话ID Session A的传输包体时,则依据哈希表,将待传输包体存入会话对象SA中。本发明专利技术实现数据与设备的解耦,网内设备可以从任意设备上获取所需数据,实现真正意义的去中心化。

【技术实现步骤摘要】
一种基于蓝牙点对点的数据传输方法及其系统
本专利技术涉及蓝牙数据传输领域,具体涉及一种基于蓝牙点对点的数据传输方法及其系统。
技术介绍
现今,蓝牙技术的运用越来越广泛。一般应用于商场、支付以及室内定位及虚拟现实、增强现实、混合现实、设备控制等场景。国外商场大多配备了蓝牙设备,可以对买家进入室内进行定位,当买家进入商场时,通常会在不知不觉的情况下收到一些商场的活动信息。买家路过某家店铺时,还能直接通过查看店铺推送的广告和促销信息直接购买商品并支付。这些消费场景在国外随处可见,而在国内,均以手机网络(移动网络)和Wi-Fi、近场通讯作为一种消费的行为方式。以手机交互Wi-Fi操作为例,买家首先要去开启Wi-Fi或者移动4G网络,而开启Wi-Fi后要进行免验证登录,之后再通过手机短信的方式去激活Wi-Fi认证操作,然后才能查看到商场的活动信息。这种方式对一个初入商场的买家来说,需要经过三个步骤才能完成,而采用蓝牙的话,只要一个步骤就能解决。因此,现有的获取商场内电子活动信息的方式存在操作不便的问题。再来,假设商场的路由器、互联网上的商场服务器或者是整个互联网区域内的主机出现问题时,那么在上述的案例中,商场优惠活动信息的分发工作将完全无法进行,甚至无法进行在线支付,需要转而由人工引导。该情况只是阐述传统购买方式可能存在的问题。而买家如果有使用第三方支付的消费习惯,将很难保证能在商城里快速支付及购买商品,更不用说是商场现有的无人销售机购买的场景了。那么在去中心化的环境下,当主机设备比如服务器,在商场活动专员输入商场活动相关信息后,商场的蓝牙设备均可接收到活动信息,此时这些蓝牙设备均将数据保存在设备中。当某个蓝牙设备甚至主机发生故障的情况下,买家依然可以在无网络的情况下从其它设备上获取到商场的活动信息。而这种去中心化的设备能力应用在商城和政府以及贫困山区就可以彻底解决许多上述类似的场景。通常,移动端的组网和传输方式都是采用传统的Wi-Fi组网以及移动网络组网来实现设备之间的通讯。而蓝牙自身有一种特殊的发现能力是其它网络特性及硬件能力所没有的:蓝牙有着自身的SDP发现能力和设备搜寻的能力,能将搜寻到设备组织到一个网络下,通过一组广播将需要发送的数据发送至被搜寻到的设备上。在去中心化下,蓝牙可以不需要通过移动网络或者Wi-Fi,也不需要通过访问服务器就能拿到数据。它完全是基于去中心化的传思维和技术实现。将多台蓝牙设备组成一个网络,在网络传输的过程自由传输数据。但是,现有的蓝牙组网通信可能会产生一些消息对应不上某些设备地址的问题,这是由于某些蓝牙设备在传输过程中可能由于某些环境因素或自身因素发生了中断,而后重新加入组网后该蓝牙设备将会产生新的地址,从而导致数据源无法追溯,无法获取到真实的数据源。针对这种问题,现有技术中可以经组网后的蓝牙设备来维护这组数据。这样即使设备丢失,该组数据源也能从其他蓝牙设备上获取。也就是说,商场的活动相关消息通过蓝牙设备分发到其它蓝牙设备上,是通过多组哈希值进行处理的,而每台设备接收到的哈希值,由于报文的限制(蓝牙传输20bit的限制),使得设备无法从中得知这组哈希值应该对应到该设备的哪条数据组中,最终产生消息不对等的情况。要解决上述的情况,如果从商场的用户行为处理方式来说,可以将每台蓝牙设备安放至店铺中,与商场的其它设备进行隔离。而这种方式在该店铺的设备出现故障以后将无法运作,数据存储是个问题。那么只能从技术手段上着手,从技术上的一般做法是将接收到消息放入至消息队列,接着再以发送方作为数据归组和排序,等到这组消息接收完以后,再根据排序进行下组数据的处理。而这种方式将造成了时延问题,出现了多设备之间传输的时消息响应不及时的问题。还有另一种做法则是常见的C-S模式做法,效仿HTTP的请求方式,为已经连接上的设备创建一个会话层,在当设备接收到消息时,消息会转发至会话层处理。这种方式从形式上虽然可行,但是在点对点的哈希寻路方案体系下的数据传输,每个生成的哈希值是不关联设备本身的。现有技术中,为了解决消息不对等问题,提供有以下几种解决方案:1)设备会话层方案:通过给连接的设备对象打个标记或者建立会话层进行管理。当消息体到达时,根据设备对象来指定要将消息放置到哪个会话层里面。但是这种方案就绑定了对方设备的信息,一旦对方设备消息,在接收到多设备返回数据的时候,数据源同样无法识别来源。2)元数据会话方案:在消息体中预制每条消息的流水号,但是由于流水号过长,无法实现在蓝牙这种设备的方案上。因此,急需提供基于去中心化思想,且不会出设备之间传输数据消息不对等现象的一种基于蓝牙点对点的数据传输方法及其系统。
技术实现思路
本专利技术所要解决的技术问题是:一种基于蓝牙点对点的数据传输方法及其系统,能实现设备之间的存储能力和数据共享能力,解决设备间断网后重连容易出现消息不对等问题。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于蓝牙点对点的数据传输方法,包括:蓝牙自组网络内的设备A接收输入的信息A;设备A依据所述信息A生成对应的哈希值TokenA;设备A依据所述信息A创建对应的会话IDSessionA;设备A依据蓝牙传输吞吐量将信息A拆分成两个以上的数据包;设备A依据拆分顺序生成各个数据包对应的哈希值index;将各个数据包的哈希值index分别与所述哈希值TokenA和所述会话IDSessionA一起组成传输包体,获取对应数据包个数的传输包体集合;设备A发送所述传输包体集合中的各个传输包体至所述蓝牙自组网络内的其他设备;设备B接收设备A发送过来的第一个传输包体;设备B创建会话对象SA,并以所述第一个传输包体中的会话IDSessionA为键,会话对象SA为值存入哈希表;同时,存储第一个传输包体至会话对象SA;当设备B再次接收到包含会话IDSessionA的传输包体时,则依据所述哈希表,将所述待传输包体存入会话对象SA中。本专利技术提供的另一个技术方案为:一种基于蓝牙点对点的数据传输系统,包括蓝牙连接的至少两个设备;所述至少两个设备包括设备A和设备B;设备A包括:第一接收模块,用于接收输入的信息A;第一生成模块,用于设备A依据所述信息A生成对应的哈希值TokenA;创建模块,用于设备A依据所述信息A创建对应的会话IDSessionA;拆分模块,用于设备A依据蓝牙传输吞吐量将信息A拆分成两个以上的数据包;第二生成模块,用于设备A依据拆分顺序生成各个数据包对应的哈希值index;组包模块,用于将各个数据包的哈希值index分别与所述哈希值TokenA和所述会话IDSessionA一起组成传输包体,获取对应数据包个数的传输包体集合;发送模块,用于设备A发送所述传输包体集合中的各个传输包体至所述蓝牙自组网络内的其他设备;设备B包括:第二接收模块,用于设备B接收设备A发送过来的第一个传输本文档来自技高网
...

【技术保护点】
1.一种基于蓝牙点对点的数据传输方法,其特征在于,包括:/n蓝牙自组网络内的设备A接收输入的信息A;/n设备A依据所述信息A生成对应的哈希值Token A;/n设备A依据所述信息A创建对应的会话ID Session A;/n设备A依据蓝牙传输吞吐量将信息A拆分成两个以上的数据包;/n设备A依据拆分顺序生成各个数据包对应的哈希值index;/n将各个数据包的哈希值index分别与所述哈希值Token A和所述会话ID Session A一起组成传输包体,获取对应数据包个数的传输包体集合;/n设备A发送所述传输包体集合中的各个传输包体至所述蓝牙自组网络内的其他设备;/n设备B接收设备A发送过来的第一个传输包体;/n设备B创建会话对象SA,并以所述第一个传输包体中的会话ID Session A为键,会话对象SA为值存入哈希表;同时,存储第一个传输包体至会话对象SA;/n当设备B再次接收到包含会话ID Session A的传输包体时,则依据所述哈希表,将所述待传输包体存入会话对象SA中。/n

【技术特征摘要】
1.一种基于蓝牙点对点的数据传输方法,其特征在于,包括:
蓝牙自组网络内的设备A接收输入的信息A;
设备A依据所述信息A生成对应的哈希值TokenA;
设备A依据所述信息A创建对应的会话IDSessionA;
设备A依据蓝牙传输吞吐量将信息A拆分成两个以上的数据包;
设备A依据拆分顺序生成各个数据包对应的哈希值index;
将各个数据包的哈希值index分别与所述哈希值TokenA和所述会话IDSessionA一起组成传输包体,获取对应数据包个数的传输包体集合;
设备A发送所述传输包体集合中的各个传输包体至所述蓝牙自组网络内的其他设备;
设备B接收设备A发送过来的第一个传输包体;
设备B创建会话对象SA,并以所述第一个传输包体中的会话IDSessionA为键,会话对象SA为值存入哈希表;同时,存储第一个传输包体至会话对象SA;
当设备B再次接收到包含会话IDSessionA的传输包体时,则依据所述哈希表,将所述待传输包体存入会话对象SA中。


2.如权利要求1所述的一种基于蓝牙点对点的数据传输方法,其特征在于,还包括:
设备B依据接收到的传输包体中的哈希值index,向设备A获取对应的数据包;
设备B依据接收到的所有数据包获取所述信息A,并存储至本地。


3.如权利要求1所述的一种基于蓝牙点对点的数据传输方法,其特征在于,还包括:
断线重连的设备B依据断线前最后一次接收到的传输包体中的哈希值index,向设备A请求继续未完成的传输。


4.如权利要求1所述的一种基于蓝牙点对点的数据传输方法,其特征在于,还包括:
设备A和设备B分别创建各自的GATTCLIENT线程、GATTSERVER线程和路由表;
设备A将与其GATTCLIENT线程连接的设备B的设备对象写入路由表中,所述设备对象包括GATTSERVER线程的服务地址;
设备B将与其GATTCLIENT线程连接的设备A的设备对象写入路由表中;
设备A依据其路由表中设备B的设备对象的GATTSERVER线程的服务地址,将传输包体写入设备B。


5.如权利要求4所述的一种基于蓝牙点对点的数据传输方法,其特征在于,所述设备A将与其GATTCLIENT线程连接的设备B的设备对象写入路由表中;设备B将与其GATTCLIENT线程连接的设备A的设备对象写入路由表中,具体为:
设备A和设备B分别启动各自的GATTSERVER线程,并广播预设的UUID;
设备B启动其GATTCLIENT线程后,自动扫描到与自身预设的UUID一致的设备A;
设备B添加设备A的IP地址至对自身的等网络结点的列表中;
设备A启动其GATTCLIENT线程后,自动扫描到与自身预设的UUID一致的设备B;
设备A添加设备B的IP地址至自身的对等网络结点的列表中;
设备B的GATTCLIENT线程遍历自身的列表,依据列表中的蓝牙设备IP地址建立与设备A的蓝牙通讯连接;
设备B将与其成功连接的设备A的设备对象加入自身的路由表中;
设备A的GATTCLIENT线程遍历自身的列表,依据列表中的蓝牙设备IP地址建立与设备B的蓝牙通讯连接;
设备A将与其成功连接的设备B的设备对象加入自身的路由表中。


6.一种基于蓝牙点对点的数据传输系统,其特征在于,包括蓝牙连接的至少两个设备;所述至少两个设备包括设备A和设备B;
设备A包括:
第一接收模块,用于接收输入的信息A;
第一生成模块,用于设备A依据所述信息A生成对应的哈希值TokenA;...

【专利技术属性】
技术研发人员:刘德建张雅彬张明辉杜建强郭玉湖
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1