所有附近设备之间的通信

时间:2015-08-28 04:42:55

标签: android google-nearby

我需要在连接到同一WiFi AP的所有设备之间实现通信。我正在使用Google Nearby Connections API。我能够连接到多个设备并进行通信。但由于一些问题连接迷失了。我查看了Google文档,它建议"当设备连接到主机时,它可能会向其他客户端设备发送消息。"

https://developers.google.com/nearby/connections/android/manage-connections

我怀疑它是什么意思"它可能会向其他客户端设备发送消息"。

如果多个客户端设备连接到主机设备,那么客户端设备如何向其他客户端设备发送消息?

2 个答案:

答案 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时的连接将丢失

  • 您或其他设备与wifi断开连接
  • 你和其他设备连接到不同的wifi网络(记住你是在本地网络上工作的Nearby Connection,如果你想通过不同的网络发送消息使用Nearby Message API)
  • 即使其中一个设备中的应用程序被最小化,关闭(销毁)等,连接也会丢失

所以我认为你应该记录其中一些案例。

  

“它可能会向其他客户端设备发送消息”

开发者页面表示当主机响应连接请求时,可以发送连接状态(已接受,已拒绝等)。

  

如果多个客户端设备连接到主机设备,那么如何   客户端设备可以向其他客户端设备发送消息吗?

并且,如果连接了多个设备,您可以将您的消息(或者我应该说数据)发送给主机,主机将相同的数据发送到与其连接的所有客户端(这就是大多数主机 - 客户端系统的工作原理) )。

我希望它有所帮助