C# messagebroker中的消息格式

C# messagebroker中的消息格式,c#,.net-core,activemq,C#,.net Core,Activemq,我是消息代理的新手,我正在尝试运行一个简单的项目,向代理发送消息“Hello”。消息代理是ActiveMQ 使用系统; 使用Amqp; 名称空间发送器 { 班级计划 { 静态void Main(字符串[]参数) { 地址=新地址(“amqp://guest:guest@本地主机:5672“; 连接=新连接(地址); 会话=新会话(连接); 消息消息=新消息(“你好”); SenderLink sender=新的SenderLink(会话,“发件人链接”,“测试”); 发送者。发送(消息); se

我是消息代理的新手,我正在尝试运行一个简单的项目,向代理发送消息“Hello”。消息代理是ActiveMQ

使用系统;
使用Amqp;
名称空间发送器
{
班级计划
{
静态void Main(字符串[]参数)
{
地址=新地址(“amqp://guest:guest@本地主机:5672“;
连接=新连接(地址);
会话=新会话(连接);
消息消息=新消息(“你好”);
SenderLink sender=新的SenderLink(会话,“发件人链接”,“测试”);
发送者。发送(消息);
sender.Close();
session.Close();
connection.Close();
}
}
}

但是,当我在ActiveMQ的web控制台中看到消息时,它会将消息详细信息显示为“Sw-Hello”。我不明白它为什么要打印一些额外的字符。有人能帮我一下吗?

ActiveMQ控制台中AMQP消息正文的布局可能与实际内容有些出入,因为消息被转换为代理自身内部协议的中间形式,称为Openwire。因此,您不应该指望在那里看到完全格式化的内容,因为代理可能会保留完全重建AMQP消息所需的额外数据,或者is可能只是将其存储为原始字节消息,这意味着消息正文将保留UTF8大小的编码字节

需要检查的更重要的事情是,如果您使用AMQP客户端使用消息,您是否获得了预期的有效负载


从AMQP到Openwire的消息的内部交叉编码由配置的AMQP转换器控制,请参阅文档

就代理而言,任何消息的主体都只是一个字节数组。这些字节可以是二进制数据或文本数据。如果是文本,字符可以用US-ASCII、UTF-8、UTF-16等编码。代理不知道也不关心

web控制台尽其所能打印数据以供管理之用,但它不能总是将所有内容都正确无误,这几乎可以肯定是您看到奇怪字符的原因


检查消息中数据的真正方法是实际使用它并以这种方式验证其内容。

你所说的“代理控制台”具体是什么意思?@JustinBertram我指的是ActiveMQ的web控制台。