Мне нужно, чтобы два разных сервера socket.io обменивались данными друг с другом. Я не могу использовать socket.io-client
, так как он не различает browser to server
соединений и server to server
соединений. Поэтому я пытаюсь использовать socket.io-redis
.Как отправить сообщение другому серверу socket.io с помощью socket.io-redis?
Один из них является сервером express-socket.io, а другой - автономным сервером socket.io. Оба устройства настроены на использование адаптера socket.io-redis
. Я не вижу сообщение, полученное на сервере Server1 от Server2. Также ошибок нет.
Сервер1:
var express = require('express');
var app = express();
var server = app.listen(8000,function() {
\t 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) {
\t console.log(message);
});
io.on('connection',function (socket) {
\t console.log('connection');
\t socket.on('message',function (message) {
\t \t console.log(message);
\t });
});
Сервер2:
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
io.emit('message','Hi');
Вы проверили хранилище redis, если события написаны правильно? – cdagli
@cdagli вы можете посмотреть на http://stackoverflow.com/questions/36874287/nodejs-socket-io-server-server-communication Я вижу от вас пользователя, что у вас есть некоторый опыт socket.io :). Правильно ли Коваль, что я не могу связывать сервер с сервером с socket.io-redis? – adaniluk