我需要让两个不同的socket.io服务器相互通信。我不能使用
一个是express-socket.io服务器,另一个是独立的socket.io服务器。两者都已配置为使用
socket.io-client
,因为它不能区分浏览器到服务器
连接和服务器到服务器
连接。因此,我尝试使用socket.io-redis
。一个是express-socket.io服务器,另一个是独立的socket.io服务器。两者都已配置为使用
socket.io-redis
适配器。我在Server1上没有看到来自Server2的消息。并且没有出现错误。
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);
});
});
服务器二:
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
io.emit('message','Hi');