socket.io-redisのドキュメントには、実際にredisサーバーを実行する必要があるとは記載されていないため、忘れている可能性があります。 socket.io-redisプラグインは、redisサーバーのpub / subクライアントを使用して、複数のsocket.ioインスタンスを接続します。
-
https://redis.io
からredisサーバーをダウンロードしてインストールします -
socket.ioインスタンスにredisプラグインを追加します:
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はデフォルトのredisポートであり、同じサーバーでノードとredisを実行する場合はlocalhostです。
-
必要なsocket.ioおよびsocket.io-redis関数を追加します
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); }); }); });
-
socket.ioでサーバーを起動します
server.listen(3000, function(){ logger.debug('listening on *:3000'); });