我需要在Android App和服务器之间创建双向通信。 我已经看到了向服务器发送消息的示例,但没有其他方式。 知道如何做到这一点?服务?的AsyncTask?
答案 0 :(得分: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();