1

我正在尝试通过 ZeroMQ 从 Python 代码向 C# 发送消息。我在 Python 中使用以下数据结构:

message = msgpack.packb(
    (
        {"message_id": "1001", "type": "GET", "namespace": "DocumentManager"},
        "MdiActiveDocument",
        ["parameter1", "parameter2"]
    )
)
message = msgpack.packb(message)
alive_socket.send(message)

尝试使用 C# 解压缩它,使用以下代码:

        var message = new byte[500];
        int result = this.Client.Receive(message);
        var serializer = 
        MessagePackSerializer.Get<Tuple<Dictionary<string,string>, String, List<String>>>();
        var reply = serializer.UnpackSingleObject(message);

它导致此错误:

Additional information: Unpacker is not in the array header.
The stream may not be array.

我尝试过简化数据结构,但仍然无法正确处理。也许我对 MsgPack 的使用存在缺陷。提前感谢您的帮助。

4

1 回答 1

0

更新:真正的原因比我删除的这个解释要愚蠢得多。我在原始代码中调用了 packb() 两次。

于 2014-09-28T11:57:02.423 回答