Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Express和Redis进行异步调用_Node.js_Redis_Express_Publish Subscribe - Fatal编程技术网

Node.js 使用Express和Redis进行异步调用

Node.js 使用Express和Redis进行异步调用,node.js,redis,express,publish-subscribe,Node.js,Redis,Express,Publish Subscribe,我正在使用Redis Pub/Sub将消息从Node.js传输到后端服务器 问题是如何从订户消息事件获取消息,以便在express响应中访问。这是我应该用中间件处理的事情吗?或者有没有更简单的异步回调方法 下面是我所说的一个基本示例: subscriber.on("message", function (channel, message) { console.log("received: " + channel + ": " + message); }); server.get('/'

我正在使用Redis Pub/Sub将消息从Node.js传输到后端服务器

问题是如何从订户消息事件获取消息,以便在express响应中访问。这是我应该用中间件处理的事情吗?或者有没有更简单的异步回调方法

下面是我所说的一个基本示例:

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为的响应对象传递给异步队列,解决了我自己的问题。

我对node.js只有很少的经验,但是类似于下面的方法也可以工作。我认为您只需要通过一个请求来访问服务器,该请求以服务器识别的模式包含消息。在下面的示例中,请求是这里的某个消息

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); var http=require('http'); var site=http.createClient('127.0.0.1',80); 订户打开(“消息”,功能(频道,消息)){ var req=site.request(“GET”、“/msg/”+message,{'host':'127.0.0.1'}); 请求结束(); } 获取('/msg',函数(req,res){ var msg=req.params.msg; publisher.publish(server.uuid,server.uuid+“:”+msg; res.send(msg);
如果不是最终的解决方案,希望这能作为一个起点有所帮助。

我知道你要做什么。我会看一看,看看是否能让它发挥作用……不过,我的想法是,消息不是基于url等,而是服务器上的待定信息。