Как передать двоичные данные в Nameko RPC? - PullRequest
0 голосов
/ 25 марта 2019

Похоже, что json является способом по умолчанию для сериализации данных в nameko rpc. Если я позвоню rpc.my_service.send(b'\x01\'), это вызовет исключение kombu.exceptions.EncodeError: Object of type 'bytes' is not JSON serializable

Есть ли способ отправить двоичные данные в nameko rpc? например, pickle. Пожалуйста, дайте мне короткий пример? Заранее спасибо.

1 Ответ

1 голос
/ 25 марта 2019

Вы можете сериализовать с pickle, указав его в конфигурационном файле. Просто:

# config.yaml
serializer: pickle

А

nameko run my_service --config config.yaml

Если вам нужно что-то более продвинутое, вы можете создать свой собственный сериализатор и снова настроить службу для использования его с вашим конфигурационным файлом:

# config.yaml
serializer: my_serializer
SERIALIZERS:
    my_serializer:
        encoder: 'path.to.encode.function'
        decoder: 'path.to.decode.function'
        content_type: 'application/x-my-serializer'

Функции кодирования и декодирования просто принимают значение и возвращают преобразованную версию.

...