邻近连接2.0:混合不同的策略?(Nearby Connections 2.0: Mixing di

2019-09-28 10:38发布

我一直在尝试用新的Android的附近连接2.0版 API上,具有用于广告和发现的连接策略的一些问题。 这些问题涉及到奇怪的边缘情况,并且可能不容易回答的问题。 但是,当我在另一篇文章的评论中提到,这些潜在的问题,附近的连接开发商要求我创建有关这些问题的一个单独的问题。 这个问题涉及到,我已经想到了一些奇怪的(但有些不自然)边缘的情况下(但通常开发商在做平凡的事不太可能遇到)。

该文件包含了这个有些模棱两可的语句:“最近的连接支持广告和发现不同的策略。” 起初,我理解这意味着我们可以选择两种连接策略之一,并以此为广告和发现。 由于连接策略定义在一个特定节点(本地)连接的拓扑结构,它是有道理的,我们需要使用相同的连接策略,让广告和发现。

然而,人们也可以解释模棱两可的声明意味着,人们可以(直译)用于广告和发现不同的策略。 这似乎很荒谬,但似乎没有要任何机制来实际强制策略是相同的。 由于两个startAdvertising()和startDiscovery()采取了“战略”的参数,它很可能通过不同的策略应用在每。

注:我已经想通了回答上述问题的实验。 如果广告客户和发现者使用不匹配的策略,发现者的onEndpointFound回调从来没有达到(所以我猜测,较低级别的代码必须认识到,有一个错配,从来没有把它送上去)。

另一个问题是:异构网络(与策略的混合物)可能吗? 由于连接策略(影响两个连接的节点之间使用的通信手段P2P_CLUSTER使用低带宽小的数据传输,并P2P_STAR使用蓝牙和WiFi热点更高带宽),它似乎是为了使两个节点连接,两者将需要使用同样的策略。

正如前面提到的,实验表明,两个节点都需要使用相同的策略,以便连接。 然而,我可以想像,其中装置A中使用的“群集”的策略连接到设备B的另一边缘的情况下,切换策略(同时保持连接开放),并连接到使用“星”的策略装置C。 将这项工作? 我不知道。 由于我目前的测试程序配置更改后重新启动,我需要为了测试这种边缘情况编写新的代码(和我有很多其他的代码,我宁愿写)。 但最近连接开发者感兴趣的是听到有关潜在优势的情况下,所以我在这里提到这一点。

这些问题上来,而我试图调试其他连接问题。 为了使我的实验方案更加灵活,我增加了对连接策略设置选项,另一个设置选项控制程序是否应该只是做广告,或者只是探索,或两者兼而有之。 然后,我不得不决定当这些设置发生变化应该发生什么。

难道不足以只是停止广告/发现,然后不管自行指定,使用所请求的策略重新启动? 但随后会从先前的策略吃剩的任何现有连接发生什么呢? 这个答案似乎并不明显。

也许这些问题只会拿出像我的测试程序中的人工场景(我只写了,因为我想了解其他连接问题)。 在最终产品中,我可能会随便挑一个战略,坚持使用它。 如果邻近的连接是开源的,我想看看这代码,以了解这些奇怪的边缘情况下可能发生的事情。 但因为我无法查看源,它会很高兴地看到关于预期的行为多了几分文档

Answer 1:

是啊,你回答了自己的问题。 您必须匹配广告和发现者侧两种策略。 否则,你永远不会发现广告设备。

至于在流动的中间变换策略,它是明令禁止的。 当你开始投放广告,你会得到一个错误/开始发现,而你仍然有超过先前的战略联系。



文章来源: Nearby Connections 2.0: Mixing different strategies?