Общий способ создания server-> клиентских сообщений в gRPC осуществляется через «потоковое». То есть клиент делает вызов на сервер, а затем сервер может «потоковым» ответом на сообщение нескольким сообщениям перед клиентом, прежде чем завершить вызов.
См: http://www.grpc.io/docs/guides/concepts.html#server-streaming-rpc
Конечно, «потоковый» довольно отличается картина от традиционного «обратного вызова», но часто можно решать те же проблемы, связанные с ним.
Отметим, что Cap'n Proto RPC - альтернатива Protobuf и gRPC - полностью поддерживает вызовы в обоих направлениях благодаря поддержке ссылок на объекты как первоклассный тип: клиент может, например, совершать вызов на сервере в который он предоставляет ссылку на объект для использования для обратных вызовов, а затем сервер может позже выполнять обратные вызовы на этот объект на клиенте.
(Раскрытие информации:. Я являюсь автором Protobuf v2 Google, а также автором Cap'n Proto, но я не связан с КПГРАМИ)
спасибо так много :) –