невозможно получить данные из socket.io-redis с помощью nodejs - PullRequest
0 голосов
/ 26 сентября 2019

Надеюсь, у вас все хорошо,

Поскольку я создаю многопользовательские игры, мне нужно хранить все пользовательские данные из сокета, через некоторое время мне нужно создать группу из списка пользователей.

Итак, я попытался реализовать библиотеку 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');
});

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, так какВы можете увидеть на скриншоте

Вывод вышеуказанного кода

...