无法使用nodejs从socket.io
希望您一切都好,
由于我正在创建多人游戏,所以我需要从套接字存储所有用户详细信息,一段时间后,我需要从“用户”列表中分组。
因此,我尝试实现.io-redis库并尝试获取所有已连接的用户,但是它无法正常工作,我已经根据此示例Example to use 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'); });
index.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提取数据,如您在屏幕快照中所示
Output of Above Code
[希望您做的很好,因为我正在创建多人游戏,所以我需要从套接字存储所有用户详细信息,一段时间后,我需要从“用户”列表中进行分组。所以我尝试实现...
回答如下:我测试了您的代码,并且对我有用,这可能是redis的错误,您在回调中是否有任何错误: