2016-02-26 3 views
2

Есть ли способ сделать вызов вызова с сервера клиенту с Protobuf RPC (а пользовательский вызов от клиента к серверу, а не напрямую)?Обратные вызовы Protobuf RPC

Я имею в виду, например, описать метод службы в файле * .proto с параметром обратного вызова?

Im использование библиотеки gRPC.

ответ

3

Общий способ создания 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, но я не связан с КПГРАМИ)

+0

спасибо так много :) –

Смежные вопросы