2015-11-04 86 views
1

我需要在Android應用程序和服務器之間創建雙向通信。 我已經看到了向服務器發送消息但不是其他方式的示例。 任何想法如何做到這一點?服務?的AsyncTask?從Android上的gRPC接收消息

回答

0

對於這種情況,你需要做一個雙向的RPC在你的原型文件:

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

雙向通過對產生的存根調用myStreamingCall(),提供響應的觀察者和取回請求觀察員呼籲工作。請求觀察者可以從您的android客戶端調用以將消息發送到服務器。當服務器響應時,您的響應觀察者將與消息一起被調用。

只要您的存根控件有一個通過將ManagedChannelBuilder.executor()設置爲您自己的線程池構建的通道,就會在其某個線程上調用響應。你可以這樣做:

ManagedChannelBuilder.forAddress("localhost", 443) 
    .executor(Executors.newCachedThreadPool()) 
    .build();