1

似乎 json 是 .json 中序列化数据的默认方式nameko rpc。如果我打电话rpc.my_service.send(b'\x01\'),它会引发异常kombu.exceptions.EncodeError: Object of type 'bytes' is not JSON serializable

有没有办法在 nameko rpc 中发送二进制数据?例如,pickle。请给我一个简短的例子吗?先感谢您。

4

1 回答 1

4

您可以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'

编码和解码函数只取一个值并返回一个转换后的版本。

于 2019-03-25T14:12:27.407 回答