GRPC - Как добавить пользовательское шифрование в Python?C#

Место общения программистов C#
Ответить
Anonymous
 GRPC - Как добавить пользовательское шифрование в Python?

Сообщение Anonymous »

формулировка Promblem < /h1>
Привет, я новичок в Grpc. < /p>
Недавно я пытаюсь написать клиент Python, который эмулирует соединение GRPC с удаленным сервером, который имеет пользовательское шифрование и сжатие на своем корпусе запроса/ответа. Документация Python.
Q1: Interceptors
В официальном клиенте, написанном в C#, они использовали класс Callinvoker , которые разрешают Pre /Пост-обработка во время сериализации. < /p>
Я считаю, что перехватчики являются эквивалентами Python. Например, в grpc.unaryunaryclientinterceptor существует обратный вызов с именем receptept_unary_unary (продолжение, client_call_details, request) .
Но документ никогда не упоминался о том, что является запросом должен быть. И я изучил примеры Python в grpc Repo, они только показывают, как манипулировать метаданными и значением поля перед сериализацией, что мне не нужно. но не ответы. Я понятия не имею, как добавить пользовательский обратный вызов в ответы серверов перед десериализацией, используя это.

Код: Выделить всё

grpc.Channel
имеет серию абстрактных методов для вызовов GRPC (например, unary_unary ), которые принимают аргументы request_serializer и response_deserializer .
Подумайте, может быть, можно переопределить класс grpc.channel , который добавляет обратный вызов в эти аргументы, то есть

Код: Выделить всё

def encode(data):
pass # my serializer

def decode(data):
pass # my deserializer

class Channel(grpc.Channel):
def unary_unary(method, request_serializer, response_deserializer, _registered_method):
def request(data):
return encode(request_serializer(data))
def response(data):
return request_serializer(decode(data))

return super().unary_unary(method, request, response, _registered_method)

# ... and the same for other methods
Но я понятия не имею, будет ли это даже сработать.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»