socket.io 使用 redis 存储

socket.io with redis store

我正在使用 socket.io 和 redis 存储。我从 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?

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

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

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

redis-cli
>MONITOR

然后发出一些消息。