带有redis存储的socket.io

Ram*_*ris 6 redis socket.io

我正在将 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);
    });
});
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*klı 6

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

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

您还可以使用 redis-cli 来查看其是否有效。

redis-cli
>MONITOR
Run Code Online (Sandbox Code Playgroud)

然后发出一些消息。