【问题标题】:Async call with Express and Redis使用 Express 和 Redis 进行异步调用
【发布时间】:2011-06-10 15:52:09
【问题描述】:

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

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

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

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 redis express publish-subscribe


    【解决方案1】:

    我对 node.js 的经验很少,但是类似于以下内容的内容会起作用。我认为您只需要使用包含服务器识别模式中的消息的请求来访问服务器。在以下示例中,请求是 http://yoursite.com/msg/some_msg_here

    var http = require('http'); var site = http.createClient('127.0.0.1', 80); 订阅者.on(“消息”,功能(频道,消息)){ 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);

    如果不是最终解决方案,希望作为起点有所帮助。

    【讨论】:

    • 我知道你打算用这个..我会看看我是否可以让它工作......但这个想法是,消息不会基于url 等,而不是服务器上的 TBD。
    猜你喜欢
    • 2018-03-05
    • 2020-04-01
    • 2017-11-14
    • 2016-07-11
    • 2015-12-01
    • 1970-01-01
    • 2014-03-19
    • 2021-01-17
    • 2014-06-27
    相关资源
    最近更新 更多