TypeError:io.connect不是函数

时间:2016-04-01 23:20:05

标签: javascript node.js socket.io multiplayer

我正在使用节点js和socket.io(http://rawkes.com/articles/creating-a-real-time-multiplayer-game-with-websockets-and-node.html)关注简单多人游戏的教程。我正在尝试连接到套接字服务器时遇到问题。我收到错误说 TypeError:io.connect不是函数 PS:我是节点js和socket.io的初学者,所以请帮帮我。

var util = require("util");
io = require("socket.io"),
    Player = require("./Player").Player;
var socket, players;
function init(){
    players = [];

    socket = io.listen(8000);

    socket.configure(function() {
        socket.set("transports", ["websocket"]);
        socket.set("log level", 2);
    });

    setEventHandlers();

    socket = io.connect("http://localhost", {port: 8000, transports: ["websocket"]});

};

1 个答案:

答案 0 :(得分:2)

注意: socket = io.connect("http://localhost", {port: 8000, transports: ["websocket"]});这必须包含在客户端javascript文件中,您可以通过脚本标记加载socket.io.js

更改为:

var util = require("util"),
    io = require("socket.io")({
      transports  : [ 'websocket' ]
    }),
    Player = require("./Player").Player,
    socket,
    players;

function init(){
    players = [];

    socket = io.listen(8000);

    setEventHandlers();

};
init();

注意如果你想这样做,socket.io v1.0不支持你必须安装v0.9,请使用:$ npm install socket.io@0.9 -S

socket.configure(function() {
    socket.set("transports", ["websocket"]);
    socket.set("log level", 2);
});

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

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