I need to have two different socket.io servers communicate with each other. I cannot use socket.io-client
since it does not differentiate between browser to server
connections and server to server
connections. So I am trying to use socket.io-redis
.
One is an express-socket.io server and another is a standalone socket.io server. Both have been configured to use socket.io-redis
adapter. I do not see message received at Server1 from Server2. Also there are no errors.
Server1 :
var express = require('express');
var app = express();
var server = app.listen(8000,function () {
console.log('server listening at port 8000');
});
var io = require('socket.io')(server);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
io.on('message',function (message) {
console.log(message);
});
io.on('connection',function (socket) {
console.log('connection');
socket.on('message',function (message) {
console.log(message);
});
});
Server2:
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
io.emit('message','Hi');