2015-09-06 13 views
7

Nota: Sto usando Mac OS 10.10 YosemiteSocket.configure non definito, non è un errore di funzione

Nota importante: Nessuno degli altri domande e le risposte hanno lavorato per me.

Sto seguendo un tutorial che lo farà in modo che possa avere una partita multiplayer. C'è un file, che ho da scaricare, che dispone di un file game.js che ho bisogno di aggiungere questo codice in:


Nota: Ho scaricato correttamente socket.io nella directory corretta.

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(); 

Ma quando corro nodo game.js, ottengo un errore che assomiglia a questo:

Nota: cartella Il Robhawks-Mozzilla-festival-92336f2 è la cartella che ha tutti i file in esso



Perché il socket.configure si configura? Inoltre, come posso ripararlo?

+0

Questo tutorial su un gioco multi-player online è più up-to-date: https://blog.slashie.net/2015/09/25/tutorial-multiplayer-strategy-game-in-javascript-part-1/comment-page-1/ –

risposta

14

.configure() è stato rimosso quando socket.io è passato alla versione 1.0. Immagino che il tutorial che stai seguendo utilizzi una versione precedente (0.9), ma hai installato 1.0.

Sarebbe meglio spostare il codice base su 1.0, poiché è l'ultimo. Configurazione dovrebbe essere fatto come parte della inizializzazione del server:

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

Maggiori informazioni here.

Tuttavia, dal momento che si sta seguendo un tutorial, potrebbe essere più semplice iniziare a utilizzare la versione precedente di socket.io e, dopo aver acquisito familiarità con esso, passare a 1.0. In tal caso, installare la versione precedente:

$ npm install [email protected] 
+0

I documenti socket.io sono molto carenti. Come imposto la porta e il livello di registro? –

+0

@NitzanWilnai logging/debugging è documentato [qui] (http://socket.io/docs/logging-and-debugging/), e l'impostazione della porta dipende da come si esegue 'socket.io' (come parte di un'app Express, basata su Node.js 'http', ...). – robertklep

1

Looging socket.io v1.0 log-level opzione viene rimosso. Quindi per la registrazione si deve avviare il programma usando il modulo di debug.

  1. installare debug: npm install debug -S
  2. quindi eseguire il programma: DEBUG=* node entry_file.js