1

我需要在 Android 应用程序和服务器之间创建双向通信。我已经看到了向服务器发送消息的示例,但没有看到其他方式。知道如何做到这一点吗?服务?异步任务?

4

1 回答 1

0

对于这种情况,您需要在 proto 文件中创建双向 RPC:

service MyService {
  rpc MyStreamingCall(stream MyRequest)
      returns (stream MyResponse);
}

双向调用通过调用myStreamingCall()生成的存根、提供响应观察者并取回请求观察者来工作。可以从您的 android 客户端调用请求观察器以将消息发送到服务器。当服务器响应时,将使用消息调用您的响应观察者。

只要您的存根有一个使用 ManagedChannelBuilder.executor() 设置为您自己的线程池的 Channel,就会在其线程之一上调用响应。你可以这样做:

ManagedChannelBuilder.forAddress("localhost", 443)
    .executor(Executors.newCachedThreadPool())
    .build();
于 2016-01-15T23:35:02.250 回答