首页 文章

谷歌附近的连接 - 重新连接几次后发送有效载荷不起作用

提问于
浏览
0

我想为Android创建离线多人游戏,所以我需要在设备之间进行可靠的p2p通信 . 谷歌附近的连接工作相当不错,但我发现了一个问题 . 设置为标准 - 设备A通告,设备D发现并连接到A.然后D断开连接,再次发现再连接 . 在一到十次迭代之后,D仍然可以连接到A并从A接收数据,但它不能再发送数据 . 我用 Payload.fromBytes 调用 sendPayload ,我收到 onSuccessCallback ,但是A没有收到这个有效载荷 . 稍后D接收 onPayloadTransferUpdate ,状态码为2.进一步重新连接无法解决问题 . 只有可靠地解决问题的是重启 .

一些日志: ``

03-21 12:20:25.827 30317-30317/com.alienff.ntest I/Log: [21.03.2018 12:20:25.827] [main] MainActivity: sending payload -5864147190526311071
03-21 12:20:25.841 30317-30317/com.alienff.ntest I/Log: [21.03.2018 12:20:25.841] [main] MainActivity: payload cent
...
03-21 12:21:16.925 3066-3215/? D/WifiStateMachine: Current network is: "___mm___" , ID is: 0
03-21 12:21:16.926 3066-3215/? D/WifiStateMachine: Current network is still qualified due to heavy traffic, txSuccessRate=2.1973258256066233 rxSuccessRate=0.0
03-21 12:21:16.926 3066-3215/? D/WifiStateMachine: Current network is 5GHz, bail out...
03-21 12:21:17.408 4049-4049/? D/io_stats: !@ 179,0 r 906136 23065676 w 370340 7270584 d 46705 2438912 f 147311 147270 iot 680350 657112 th 51200 0 0 pt 0 inp 0 0 55938.769
03-21 12:21:17.571 10176-30596/? W/NearbyConnections: Unexpected call to physicalConnectionClosed() for medium WIFI_LAN while NearbyRecorder has active medium BLUETOOTH -- metadata{ service_id: 0 }
03-21 12:21:17.576 10176-30596/? W/NearbyConnections: Unexpected call to physicalConnectionClosed() for medium WIFI_LAN with no corresponding EstablishedConnection that was previously opened. -- metadata{ service_id: 0 }
03-21 12:21:17.579 10176-30596/? W/NearbyConnections: NearbyRecorder expected no more active physical connections before logging this endpoint connection. -- metadata{ service_id: 0 }
03-21 12:21:17.585 3336-3929/? E/BluetoothRemoteDevices: setRfcommConnected false
03-21 12:21:17.586 30317-30317/com.alienff.ntest I/Log: [21.03.2018 12:21:17.586] [main] MainActivity: onPayloadTransferUpdate. endpointId: 7oRz payloadId: -5864147190526311071 bytesTransferred: 0 status: 2
03-21 12:21:17.597 30317-30317/com.alienff.ntest I/Log: [21.03.2018 12:21:17.596] [main] MainActivity: onDisconnected: 7oRz

你知道如何使谷歌附近的连接可靠地重新连接吗?谢谢!

1 回答

  • 0

    我之前没见过,所以我打算让你为我做一些调试 .

    • 给我你可以重现的所有设备的型号名称 .

    • 告诉我你要发送什么类型的有效载荷(BYTE,FILE,STREAM) .

    • 运行logcat时重现此错误 . 查找日志标记"NearbyConnections"和"NearbyMediums" . 如果您发现任何错误/警告,请告诉我 .

    • 重现此错误,然后强制终止您的应用 . 等45秒 . 您应该看到Wifi /蓝牙关闭/打开 . 重新打开应用程序并尝试再次重现 .

    Current thoughts: 状态代码2是"PayloadTransferUpdate.Status.FAILURE" . 通常看起来像套接字变坏了 . 你're still receiving data and, internally, we send a flurry of control messages over the socket when connecting and those are all going through successfully or you wouldn' t得到onConnectionResult . 这意味着Payload本身出现问题;无论是在你身边,还是我们的 . 我怀疑你不知道BYTE有效载荷会失败的方式 . 如果文件已移动或ParcelFileDescriptor变为无效,则FILE有效负载可能会失败 . 如果关闭套接字/ ParceFileDescriptor或者收集垃圾,则STREAM有效负载可能会失败 .

    免责声明:我在使用附近连接

相关问题