I have a simple socket.io server using socket.io-redis, socket.io-emitter, and I run redis (which is completely new to me, I'm on windows, I downloaded redis and opened redis-server.exe and redis- cli.exe). Through the redis CLI, using the monitor command, I see that the server is connected and that events reach redis from the emitter, but test-server.js never writes anything. What else do I need to do? Is a socket.io server required to subscribe to redis?
Redis "publish" "socket.io#/#" "\x93\xa7emitter\x83\xa4type\x02\xa4data\x92\xa4test\xa9some data\xa3nsp\xa1/\x82\xa5rooms\x90\xa5flags\x80"
test server.js
var server = require('http').Server(); var io = require('socket.io')(server); var redis = require('socket.io-redis'); io.adapter(redis({ host: '127.0.0.1', port: 6379 })); io.on('connection', function(socket){ console.log('client connected'); // Works socket.emit('connect','test'); // Works }); io.on('test', function(socket){ console.log('test came in'); // Works }); server.listen(3000);
test emit.js
var io = require('socket.io-emitter')({ host:'localhost', port:'6379' }); setInterval(function(){ io.emit('test', 'some data'); console.log('emitted'); }, 5000);
Flion
source share