【问题标题】:socket.io with redis store带有 redis 存储的 socket.io
【发布时间】:2015-02-16 15:19:36
【问题描述】:

我正在使用带有 redis 存储的 socket.io。我有以下代码,因为它来自 socket.io 网站。

var io = require('socket.io')(server);
var redis = require('socket.io-redis');
io.adapter(redis({host: '128.199.122.183', port: 6379}));

io.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});

代码按预期运行,但我希望在 redis 中看到一些条目(键值对),但没有找到。谁能告诉我如何检查socket.io是否正在使用redis?

【问题讨论】:

  • 感谢您提出这个问题!这对我来说也很有趣。

标签: redis socket.io


【解决方案1】:

当前的socket.io-redis 包不会在数据库中存储任何内容(尽管将来可能会改变)。它使用redis pub/sub 机制在不同节点间分发消息。

要检查它是否正常工作,您需要启动多个应用实例,然后在其中一个实例上发出消息,并检查其他所有实例是否都在接收它。

你也可以使用 redis-cli 查看它是否工作。

redis-cli
>MONITOR

然后发出一些消息。

【讨论】:

  • 感谢您的精彩提示。启动多个实例并发出消息以查看它们是否正在传递并没有让我感到震惊。如果您考虑一下,这就是首先使用 redis 的全部意义所在。也许是我想得太深了,错过了为什么要使用redis的实际点。
猜你喜欢
  • 2014-03-06
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 2017-09-02
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
相关资源
最近更新 更多