运行server.js时,NodeJS需要出错

时间:2015-10-29 03:33:14

标签: javascript node.js websocket socket.io

运行node server.js时遇到以下错误:

enter image description here

为什么require会抛出错误?我使用的是Socket.IO,server.js中的代码如下所示:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');

server.listen(8890);
io.on('connection', function (socket) {

  console.log("new client connected");
  var redisClient = redis.createClient();
  redisClient.subscribe('message');

  redisClient.on("message", function(channel, message) {
    console.log("mew message in queue "+ message + "channel");
    socket.emit(channel, message);
  });

  socket.on('disconnect', function() {
    redisClient.quit();
  });

});

1 个答案:

答案 0 :(得分:3)

您的问题是您使用的是Socket.io v0.8.1。您可以通过至少安装v1.0.0 解决此问题。如果您对先前版本的升级没有任何要求/限制,我建议使用最新的稳定版本。

require('io')(srv)签名在v1.0.0中发布。加上v0.8.1可以追溯到2011年;这是很长一段时间,并且在Node,以及Express和Socket.io中已经发生了很大变化。

以下是有关从版本v0.9及更低版本过渡到v1.0.0 +的更多信息:http://socket.io/docs/migrating-from-0-9/

您可以在此处找到Socket.io的版本历史记录:https://github.com/socketio/socket.io/blob/master/History.md