gpt4 book ai didi

ruby-on-rails - 如何使用 Redis/Node/Rails 延迟和合并 pub/sub

转载 作者:IT王子 更新时间:2023-10-29 06:04:43 30 4
gpt4 key购买 nike

我有一个 RubyOnRails 应用程序,它使用 Node.js/Socket.io 服务器向所有连接的客户端推送交易信息。每当执行交易时,客户端屏幕都会更新上次交易的信息。

随着交易频率的增加,每秒更新一次甚至更频繁的更新变得相当烦人。我正在寻找一种方法,例如最多将更新推送给客户端。每 5 秒一次,即如果没有交易发生,则不会推送任何内容。

我目前的情况是:我通过以下方式将交易信息从 Rails 应用程序推送到 Redis:

REDIS.publish('tradeupdate', ..... )

Node 服务器会做类似的事情:

cli_sub.subscribe("tradeupdate");
cli_sub.on("message",function(channel,message) {
io.sockets.emit('ablv', message);
});

然后客户做

socket.on('ablv', function (data) {
obj = JSON.parse(data);
.....
});

目标是在给定时间段(例如 5 秒)内仅将最后一条消息从 Rails 发送到 Node 或从 Node 发送到客户端。

最佳答案

是什么阻止您缓冲消息,并使用一个简单的计时器每五秒执行一次发射?

var last_message = null;

cli_sub.subscribe("tradeupdate");
cli_sub.on("message",function(channel,message) {
last_message = message;
});

setInterval(function() {
io.sockets.emit('ablv', last_message);
}, 5000);

关于ruby-on-rails - 如何使用 Redis/Node/Rails 延迟和合并 pub/sub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17680414/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com