希望你一切顺利,
由于我正在创建多人游戏,所以我需要从套接字存储所有用户详细信息,一段时间后我需要从用户列表中创建一个组。
所以我尝试实现 https://github.com/socketio/socket.io-redis库并尝试获取所有连接的用户但它不起作用,我根据这个示例开发了使用 socket.io-redis 的示例,但是它对我不起作用,我的 redis 服务器运行良好。
谢谢
例子 :
index.js
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 }));
var your_namespace_socket = io.of('/');
app.get('/', function(req, res) {
res.sendfile('index.html');
});
your_namespace_socket.on('connection', function(socket) {
console.log(socket.id);
socket.on('join', function(room) {
socket.join(room);
console.log(room);
//log other socket.io-id's in the room
your_namespace_socket.adapter.clients([room], (err, clients) => {
console.log(clients);
});
});
});
server.listen(3000, function() {
console.log('listening on *:3000');
});
索引.html
<html>
<head>
<title>Hello world</title>
</head>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io('/');
socket.emit('join', 'testingroom');
</script>
<body></body>
</html>
输出
用户已在无法从 redis 获取数据的房间中加入会话,如您在屏幕截图中所见