将一个json对象传递给zmq服务器

嗨,我基本上写了一个客户端和服务器使用zmq模块。我能够发送一个正常的string作为input到服务器使用我的客户端和数据显示well.but当我通过一个JSON对象得到打印不同。以下是我的客户端代码

客户代码

var zmq = require('zmq'); // socket to talk to server console.log("Connecting to hello world server..."); var requester = zmq.socket('req'); var x = 0; requester.on("message", function(reply) { console.log("Received reply for client from server", ": [", reply.toString(), ']'); x += 1; if (x === 5) { requester.close(); process.exit(0); 

}});

 requester.connect("tcp://localhost:7000"); for (var i = 0; i < 5; i++) { console.log("Sending request", i, '...'); requester.send({"AdvisorId" : "71864", "Phone": "952-921-4972"}); } process.on('SIGINT', function() { requester.close(); }); 

服务器代码

 // Hello World server // Binds REP socket to tcp://*:7000 // Expects "Hello" from client, replies with "world" var zmq = require('zmq'); // socket to talk to clients var responder = zmq.socket('rep'); responder.on('message', function(request) { console.log("Received request: [", request, "]"); console.log(typeof request) // do some 'work' setTimeout(function() { // send reply back to client. responder.send("world"); }, 1000); }); responder.bind('tcp://*:7000', function(err) { if (err) { console.log(err); } else { console.log("Listening on 7000..."); } }); process.on('SIGINT', function() { responder.close(); }); 

请求服务器中的数据

 Received request: [ <SlowBuffer 5b 6f 62 6a 65 63 74 20 4f 62 6a 65 63 74 5d> ] 

而我发送的数据是{“AdvisorId”:“71864”,“电话”:“952-921-4972”}这是一个JSON对象。我坚持这里任何帮助将是非常有益的。

 var jsonObject={"AdvisorId" : "71864", "Phone": "952-921-4972"} ; var stringObject=JSON.stringify(jsonObject); requester.send(stringObject); 

这将工作..!

ZeroMq支持string和字节[]数据,而不是对象。

尝试这个:

 requester.send("{AdvisorId" : "71864", "Phone": "952-921-4972}");