Dan*_*din 0 c# azure node.js azureservicebus azure-servicebus-queues
我正在从C#worker向Queue发送一条消息,然后我在另一个C#worker上调用它
string body = message.GetBody<string>();
这工作,我后来反序列化字符串/ JSON消息.
现在我试图以JSON消息的形式从NodeJS发送相同的消息.当我试图接收它时
string body = message.GetBody<string>();
我称之为输入格式不正确的例外情况.
我在NodeJS上的消息对象看起来像这样
{
body: JSON.stringify(message)
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
修好了!
默认情况下,.NET Azure Queue库使用DataContractSerializer和二进制XmlDictionaryWriter在使用时序列化字符串消息
new BrokeredMessage("my message");
所以你需要使用它
new BrokeredMessage(new MemoryStream(Encoding.UTF8.GetBytes("my message")), true);
并阅读C#中需要使用的消息
string body = new StreamReader(message.GetBody<Stream>(), Encoding.UTF8).ReadToEnd();
我也停止将我的JSON.stringify消息包装在一个对象中并直接传递给它sendQueueMessage.发送消息代码现在看起来像这样:
serviceBusService.sendQueueMessage('my_queue', JSON.stringify("my message"), function(error){});
JSON.stringify 输出UTF8字符串,使其与C#代码完全兼容.
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |