2016-04-01 3 views
1

Я следую учебнику для простой многопользовательской игры с использованием узлов 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, поэтому, пожалуйста, помогите мне вне.ТипError: io.connect не является функцией

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"]}); 

}; 
+0

сделали вы назвали 'init' функции в файле JS. – Nivesh

ответ

1

Примечание: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 [email protected] -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
+0

Спасибо за ваш ответ! –