与Express和Redis的asynchronous通话
我正在使用Redis Pub / Sub将消息从Node.js传输到后端服务器。
问题是如何从订阅者消息事件中获取消息以便在快速响应中访问。 这是我应该照顾的中间件? 还是有一个更简单的方法与asynchronouscallback?
以下是我正在谈论的一个基本示例:
subscriber.on("message", function (channel, message) { console.log("received: " + channel + ": " + message); }); server.get('/', function(req, res){ publisher.publish(server.uuid, server.uuid + ": message here"); res.send(message); });
更新:
解决了我自己的问题,通过传递响应对象与id到asynchronous队列。
我对node.js只有很less的经验,但是类似于下面的东西可以工作。 我想你只需要用服务器识别的模式来请求包含消息的服务器。 在以下示例中,请求是http://yoursite.com/msg/ some_msg_here 。
var http = require('http'); var site = http.createClient('127.0.0.1',80); subscriber.on(“message”,function(channel,message)){ var req = site.request(“GET”,“/ msg /”+ message,{'host':'127.0.0.1'}); req.end(); } server.get('/ msg',function(req,res){ var msg = req.params.msg; publisher.publish(server.uuid,server.uuid +“:”+ msg; res.send(MSG);
如果不是最终的解决scheme,希望这有助于作为一个起点。