我刚刚安装了NodeJS,Socket.IO及其所有依赖项。然后根据Socket.IO docs
尝试执行下面的代码var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io-emitter')(http);
var redis = require('socket.io-redis');
io.adapter(redis({
host: 'localhost',
port: 6379
}));
server.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.emit('news', {
hello: 'world'
});
socket.on('my other event', function (data) {
console.log(data);
});
});
但它失败了,错误为if (!opts.socket && !opts.host) throw new Error('Missing redis host');
答案 0 :(得分:0)
投掷的线是这一条,我怀疑:
var io = require('socket.io-emitter')(http);
Emitter
构造函数需要redis客户端或用于创建redis客户端的选项(socket
或host
和port
)。它正在抛出,因为你传递的对象(http
)既不像redis客户端,也没有创建客户端的选项。