大家好,感谢您的宝贵时间和帮助。
我需要一个使用socket.io-redis的简单示例,请评论。 我阅读了文档,但我不明白。 谢谢,
最佳答案
socket.io-redis 文档没有提到您实际上需要运行一个 redis 服务器,因此您可能已经忘记了这一点。 socket.io-redis 插件使用 redis 服务器的 pub/sub 客户端连接多个 socket.io 实例。
从https://redis.io下载并安装一个redis服务器
将 redis 插件添加到您的 socket.io 实例中:
var express = require('express'); var app = express(); var server = require('http').Server(app); var io = require('socket.io')(server); var redis = require('socket.io-redis'); io.adapter(redis({ host: 'localhost', port: 6379 }));
6379 是默认的 redis 端口,如果您在同一台服务器上运行 node 和 redis,则为 localhost。
添加您需要的 socket.io 和 socket.io-redis 功能
var your_namespace_socket = io.of('/your-namespace'); your_namespace_socket.on('connection', function(socket){ socket.on('join', function(room){ socket.join(room); //log other socket.io-id's in the room your_namespace_socket.adapter.clients([room], (err, clients) => { console.log(clients); }); }); });
用socket.io启动服务器
server.listen(3000, function(){ logger.debug('listening on *:3000'); });
关于redis - 使用 socket.io-redis 的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38282742/