2015-11-04 3 views

ответ

0

Для этого случая, вам нужно будет сделать двунаправленную RPC в файле прото:

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

Двунаправленные называют работу, вызывая myStreamingCall() на сгенерированную заглушке, обеспечивая наблюдатель ответа и получить обратно запрос наблюдатель. Наблюдатель запроса может быть вызван вашим клиентом android для отправки сообщений на сервер. Когда сервер отвечает, ваш ответчик будет вызываться с сообщениями.

Пока ваш заглушка имеет канал, который был создан с помощью ManagedChannelBuilder.executor(), установленного в ваш собственный пул потоков, ответы будут вызываться в одном из его потоков. Вы можете сделать так:

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