c# - 如何在 .NET MessagePack 中序列化并在 Node.js 中反序列化
问题描述
我有一个 RabbitMQ 队列和两个应用程序。第一个应用程序是用 .NET 核心编写的,以生成将有效负载发送到队列,第二个应用程序是在 Node.js 中从队列中读取。
生产者申请
我使用MessagePack-CSharp序列化和压缩(LZ4)有效负载。这是.NET中的序列化代码:
using MessagePack;
namespace uBeac.Serialization
{
public class MessageSerilizer
{
public static byte[] Serialize(object message)
{
MessagePackSerializer.SetDefaultResolver(MessagePack.Resolvers.ContractlessStandardResolver.Instance);
return LZ4MessagePackSerializer.Serialize(message);
}
}
}
消费者应用
我正在使用amqplib库读取 Node.js 中的字节,如下所示:
var amqp = require('amqplib/callback_api');
amqp.connect('amqp://...................', function (err, conn) {
conn.createChannel(function (err, ch) {
var queueName = 'toProcessor';
ch.assertQueue(queueName, { durable: false });
ch.prefetch(1);
console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", queueName);
ch.consume(queueName, function (msg) {
var secs = msg.content.toString().split('.').length - 1;
console.log(" [x] Received %s", msg.content.toString());
setTimeout(function () {
console.log(" [x] Done");
ch.ack(msg);
}, secs * 1000);
}, { noAck: false });
});
});
我尝试使用一些 MsgPack 库(如messagepack、msgpack-node等)将有效负载反序列化为 Json 对象……但是,它们似乎没有在 .NET 中提供与我上面显示的相同的库。
问题: 如何将有效负载解压缩并反序列化为 Json 对象?
解决方案
推荐阅读
- image-processing - 八度音阶中的 conv2 显示白色图像
- java - 适用于 Ubuntu 18、Java 1.8 的 VowPal Wabbit
- android - 如何防止android键盘像vue中的ios一样向上推html布局?
- javascript - 单选按钮返回列表中的最终值
- spring-security - Hazelcast 社区版安全性
- c# - 如何实现数据库播种以使用 Entity Framework 进行测试
- android - BluetoothGattCharacteristic.value 返回空值
- pyspark - PySpark 文档的 DataFrames df、df2、df3 等在哪里定义?
- java - 如何从文本文件中删除字符串?
- excel - 按月计算的唯一客户数