In der socket.io-redis-Dokumentation wird nicht erwähnt, dass Sie tatsächlich einen Redis-Server ausführen müssen, sodass Sie das möglicherweise vergessen haben. Das Plug-in socket.io-redis verwendet den Pub/Sub-Client des Redis-Servers, um mehrere socket.io-Instanzen zu verbinden.
-
Laden Sie einen Redis-Server von https://redis.io
herunter und installieren Sie ihn -
fügen Sie das Redis-Plugin zu Ihren socket.io-Instanzen hinzu:
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 }));
6379 ist der Standard-Redis-Port, localhost, wenn Sie Node und Redis auf demselben Server ausführen.
-
Fügen Sie socket.io- und socket.io-redis-Funktionen hinzu, die Sie benötigen
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); }); }); });
-
Starten Sie den Server mit socket.io
server.listen(3000, function(){ logger.debug('listening on *:3000'); });