无法运行最小的socket.io服务器

时间:2014-09-09 13:28:42

标签: node.js socket.io

我刚刚安装了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');

1 个答案:

答案 0 :(得分:0)

投掷的线是这一条,我怀疑:

var io = require('socket.io-emitter')(http);

Emitter构造函数需要redis客户端或用于创建redis客户端的选项(sockethostport)。它正在抛出,因为你传递的对象(http)既不像redis客户端,也没有创建客户端的选项。