似乎json是nameko rpc
中序列化数据的默认方式。如果我致电rpc.my_service.send(b'\x01\')
,它将引发异常kombu.exceptions.EncodeError: Object of type 'bytes' is not JSON serializable
是否可以在nameko rpc中发送二进制数据?例如pickle
。请给我一个简短的例子吗?预先谢谢你。
答案 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'
编码和解码功能只需获取一个值并返回转换后的版本。