我正在尝试通过 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 的使用存在缺陷。提前感谢您的帮助。