我正在为我的 Windows Azure 项目在 Node JS (socketio.js) 中实现 socket.io 服务器。我的辅助角色是c#。并通过服务总线队列将代理消息从辅助角色发送到 socketio.js。但是通过代理消息发送的对象没有序列化为 json 对象。我不知道如何在 Node js 中访问此代理消息的正文。
我可以展示如何在辅助角色中发送代理消息以及如何在 Node js 脚本中接收它。
代理消息的响应正文(即message.body)
@rrayOfTestModelHhttp://schemas.datacontract.org/2004/07/Project.Model ☺i)http://www.w3.org/2001/XMLSchema-instance☺
TestModel 是通过代理消息正文发送的对象模型的名称。
worker 角色:
BrokeredMessage socketioMessage = new BrokeredMessage(messageObject);
WorkerRoleClient.Send(socketioMessage );
Node Js 脚本:
serviceBusService.receiveQueueMessage(queue, function (error, receivedMessage) {
if (!error) {
console.log(receivedMessage);
if (receivedMessage != null) {
var messageBody = receivedMessage.body;
console.log(messageBody);
io.sockets.emit('news', messageBody);
}}
我在这里收到的消息正文是一些简单的不可读的字符串。我正在从 worker 角色发送适当的对象。如果你们中有人知道出了什么问题,请告诉我
谢谢
最佳答案
我终于找到了一种反序列化并获取 json 对象的方法。
C# 中的辅助角色
var recordsMessage = Newtonsoft.Json.JsonConvert.SerializeObject(data);
BrokeredMessage socketMessage = new BrokeredMessage(recordsMessage);
在Node js中接收:
if (receivedMessage != null) {
var messageBody = receivedMessage.body;
var jsonString = messageBody.substring(messageBody.indexOf('['), messageBody.indexOf("]")+1);
var recordsQueue = JSON.parse(jsonString);
}
希望这对某人有帮助
关于json - 如何在 Node js 中反序列化代理消息的正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15275496/