首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从nodejs的socket.io-redis获取数据

无法从nodejs的socket.io-redis获取数据
EN

Stack Overflow用户
提问于 2019-09-26 06:57:27
回答 1查看 1.5K关注 0票数 0

希望你过得很好

由于我正在创建一个多人游戏,所以我需要从套接字中存储所有的用户详细信息,过了一段时间,我需要从用户列表中创建一个组。

因此,我尝试实现https://github.com/socketio/socket.io-redis库,并试图获得所有连接的用户,但它不起作用,我已经根据这个例子开发了使用socket.io-redis的示例,但是它对我不起作用,我的redis服务器运行良好。

谢谢

例子:

index.js

代码语言:javascript
复制
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

代码语言:javascript
复制
<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获取数据的房间中加入会话,如屏幕截图所示。

上述代码的输出

EN

回答 1

Stack Overflow用户

发布于 2019-10-01 16:23:21

我测试了您的代码,它对我有效,它可能是redis的一个错误,您在回调中有什么错误吗:

代码语言:javascript
复制
your_namespace_socket.adapter.clients([room], (err, clients) => {
    if(err) console.log(err)
    console.log(clients);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58111146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档