La documentation socket.io-redis ne mentionne pas que vous devez exécuter un serveur redis, vous l'avez peut-être oublié. Le plug-in socket.io-redis utilise le client pub/sub du serveur redis pour connecter plusieurs instances socket.io.
-
téléchargez et installez un serveur redis à partir de https://redis.io
-
ajoutez le plugin redis à vos instances 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 }));
Le 6379 est le port redis par défaut, localhost si vous exécutez node et redis sur le même serveur.
-
ajoutez les fonctions socket.io et socket.io-redis dont vous avez besoin
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); }); }); });
-
Démarrer le serveur avec socket.io
server.listen(3000, function(){ logger.debug('listening on *:3000'); });