如何在nameko rpc中传递二进制数据?

时间:2019-03-25 06:37:02

标签: python-3.x nameko

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

是否可以在nameko rpc中发送二进制数据?例如pickle。请给我一个简短的例子吗?预先谢谢你。

1 个答案:

答案 0 :(得分:1)

您可以通过在配置文件中指定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'

编码和解码功能只需获取一个值并返回转换后的版本。