Socket.configure Undefined不是函数错误

时间:2015-09-06 18:00:17

标签: javascript node.js websocket socket.io

注意:我正在使用 Mac OS 10.10 Yosemite

重要提示:其他问题和答案都没有对我有用。

我正在按照一个教程进行操作,以便我可以进行多人游戏。有一个文件,我必须下载,它有一个game.js文件,我需要将此代码添加到:

注意:我正确地将socket.io下载到正确的目录中。

var util = require("util"),
    io = require("socket.io").listen(80);

var socket,
    players;

function init() {
    players = [];
    socket = io.listen(8000);
    socket.configure(function() {
        socket.set("transports", ["websocket"]);
        socket.set("log level", 2);
    });
};

init();

但是当我运行 节点game.js 时,我收到的错误如下:

注意: Robhawks-mozzilla-festival-92336f2文件夹是包含所有文件的文件夹

为什么socket.configure搞乱了?另外,我该如何解决?

2 个答案:

答案 0 :(得分:15)

.configure()转到1.0版时,

socket.io被删除。我猜你正在使用的教程是使用旧版本(0.9),但你已经安装了1.0。

最好将代码库移动到1.0,因为它是最新的。配置应该作为服务器初始化的一部分来完成:

var socket = require('socket.io')({
  transports  : [ 'websocket' ],
  ...
});

更多信息here

但是,由于您正在学习本教程,因此使用较早版本的socket.io首先启动并运行可能会更容易,并且在熟悉它之后,请转到1.0。在这种情况下,请安装旧版本:

$ npm install socket.io@0.9

答案 1 :(得分:1)

Looging socket.io v1.0 log-level选项已删除。因此,对于日志记录,必须使用调试模块启动程序。

  1. 安装调试:npm install debug -S
  2. 然后运行程序:DEBUG=* node entry_file.js