Bit*_*ian 2 json azure json.net node.js azureservicebus
我正在为我的windows azure项目在节点js(socketio.js)中实现socket.io服务器.我的工作角色是c#.我正在通过服务总线队列从worker角色向socketio.js发送代理消息.但是通过代理消息发送的对象没有被序列化为json对象.我不知道如何在节点js中访问此代理消息的主体.
我可以展示如何在worker角色中发送代理消息以及如何在节点js脚本中接收它.
代理消息的响应主体(即message.body)
@rrayOfTestModelHhttp://schemas.datacontract.org/2004/07/Project.Model ?i)http://www.w3.org/2001/XMLSchema-instance?
Run Code Online (Sandbox Code Playgroud)
TestModel是通过代理消息体发送的对象模型的名称.
工人角色:
BrokeredMessage socketioMessage = new BrokeredMessage(messageObject);
WorkerRoleClient.Send(socketioMessage );
Run Code Online (Sandbox Code Playgroud)
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);
}}
Run Code Online (Sandbox Code Playgroud)
我在这里收到的消息体是一些简单的不可读的字符串.我正在从工人角色发送适当的对象.如果你们中有人知道什么是错的,请告诉我
谢谢
我终于找到了一种方法来对它进行序列化并获取json对象.
C#中的工作者角色
var recordsMessage = Newtonsoft.Json.JsonConvert.SerializeObject(data);
BrokeredMessage socketMessage = new BrokeredMessage(recordsMessage);
Run Code Online (Sandbox Code Playgroud)
在节点js中接收:
if (receivedMessage != null) {
var messageBody = receivedMessage.body;
var jsonString = messageBody.substring(messageBody.indexOf('['), messageBody.indexOf("]")+1);
var recordsQueue = JSON.parse(jsonString);
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人
| 归档时间: |
|
| 查看次数: |
4970 次 |
| 最近记录: |