【问题标题】:How to communicate binary data in nameko rpc?如何在 nameko rpc 中通信二进制数据?
【发布时间】:2019-08-15 08:58:40
【问题描述】:

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

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

【问题讨论】:

    标签: python-3.x nameko


    【解决方案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'
    

    encode 和 decode 函数只取一个值并返回一个转换后的版本。

    【讨论】:

    • 这不起作用。你用的是什么版本?
    猜你喜欢
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2021-07-24
    • 2018-04-15
    • 1970-01-01
    相关资源
    最近更新 更多