我需要在连接到同一WiFi AP的所有设备之间实现通信。我正在使用Google Nearby Connections API。我能够连接到多个设备并进行通信。但由于一些问题连接迷失了。我查看了Google文档,它建议"当设备连接到主机时,它可能会向其他客户端设备发送消息。"
https://developers.google.com/nearby/connections/android/manage-connections
我怀疑它是什么意思"它可能会向其他客户端设备发送消息"。
如果多个客户端设备连接到主机设备,那么客户端设备如何向其他客户端设备发送消息?
答案 0 :(得分:1)
我从未尝试过这个,但似乎您可以在客户端设备上使用Nearby.Connections.getLocalEndpointId()
获取客户端endpointId。不确定这有助于将消息发送到其他客户端,因为无论如何主机都知道Client-EndpointIds ......
然而,作为概念证明,你可以这样做:
在主持人中:
String payload = client2EndpointId;
Nearby.Connections.sendReliableMessage(mGoogleApiClient, client1EndpointId, payload);
在Client1中:
@Override
public void onMessageReceived(String endpointId, byte[] payload, boolean isReliable) {
String client2EndpointId = (String) payload;
Nearby.Connections.sendReliableMessage(mGoogleApiClient, client2EndpointId, messageFromClient1ToClient2);
}
在Client2中:
@Override
public void onMessageReceived(String endpointId, byte[] payload, boolean isReliable) {
String messageFromClient1 = (String) payload;
}
主机将client2的EndpointId作为消息发送给client1。然后,Client1使用此endpointId向client2发送消息。
答案 1 :(得分:1)
时,
使用Nearby Connections API时的连接将丢失
所以我认为你应该记录其中一些案例。
“它可能会向其他客户端设备发送消息”
开发者页面表示当主机响应连接请求时,可以发送连接状态(已接受,已拒绝等)。
如果多个客户端设备连接到主机设备,那么如何 客户端设备可以向其他客户端设备发送消息吗?
并且,如果连接了多个设备,您可以将您的消息(或者我应该说数据)发送给主机,主机将相同的数据发送到与其连接的所有客户端(这就是大多数主机 - 客户端系统的工作原理) )。
我希望它有所帮助