我正在尝试在没有第三方服务的情况下连接两个近距离的Android设备,以在关闭连接之前来回传输两个小的json负载。考虑添加附近的联系人。
我正在使用P2P_POINT_TO_POINT策略,并且使两个设备都使用以下代码进行广告发布和发现:https://developers.google.com/nearby/connections/android/get-started。它始终有效,但是反复需要10-15秒才能找到连接并提示接受连接。 理想情况下,我可以在10秒以下获得此信息。
我读到有一个专门做广告,另一个专门做发现是有帮助的,但这不适用于我的用例。
有没有办法提高连接速度?
答案 0 :(得分:1)
不幸的是,您能做的最好的就是尝试在一个方向上连接。这样可以将连接延迟降低到2〜7秒。当两个设备同时连接在一起时,这会导致抖动,并且我们会尽力适当地处理它,但这会导致延迟增加。
在调用请求连接之前停止发现也有帮助,但效果不大。我们已经在最敏感的操作内部进行了此操作。
我们的广告和发现堆栈基于蓝牙,我们已经尝试了其他技术来对其进行补充。但是它们通常比蓝牙具有更严格的限制(需要路由器,需要最新的Android手机,无法同时处理连接,不能同时进行广告和发现)。在我所知道的所有技术中,只有mDNS会更快,同时仍允许双向连接尝试,并且这要求将两个电话都连接到同一路由器(并且该路由器未禁用mDNS)。通常,这意味着它只能在家里使用。如果这对您来说是一个合理的限制,那么我可以将其传递给团队。