2015-09-06 20 views
7

Uwaga: Używam Mac OS 10.10 YosemiteSocket.configure Undefined nie jest błąd funkcja

Ważna uwaga: Żaden z pozostałych pytań i odpowiedzi pracowali dla mnie.

Podążam za tutorialem, który sprawi, że będę mógł grać w trybie dla wielu graczy. Jest to plik, który mam do pobrania, który posiada plik game.js że muszę dodać ten kod do:


Uwaga: I prawidłowo pobrane socket.io w odpowiednim katalogu.

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

Ale kiedy biegnę węzeł game.js, otrzymuję komunikat o błędzie, który wygląda tak:

Uwaga: Robhawks-mozzilla-festiwal-92336f2 folder jest folder ma wszystkie pliki w nim



Dlaczego plik socket.configure psuje się? Jak mogę to naprawić?

+0

Ten poradnik na grze online dla wielu graczy jest bardziej up-to-date: https://blog.slashie.net/2015/09/25/tutorial-multiplayer-strategia-gra-in-javascript-part-1/comment-page-1/ –

Odpowiedz

14

.configure() został usunięty, gdy socket.io wszedł do wersji 1.0. Zgaduję, że samouczek, którego używasz, używa starszej wersji (0.9), ale masz zainstalowany 1.0.

Najlepiej przenieść bazę kodu do wersji 1.0, ponieważ jest najnowsza. Konfiguracja powinna odbywać się w ramach inicjalizacji serwera:

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

Więcej informacji here.

Ponieważ jednak korzystasz z samouczka, łatwiejsze może być wcześniejsze uruchomienie i korzystanie ze starszej wersji socket.io, a po zapoznaniu się z nim przejdź do wersji 1.0. W takim przypadku należy zainstalować starszą wersję:

$ npm install [email protected] 
+0

Brakuje dokumentacji socket.io. Jak ustawić port i poziom dziennika? –

+0

@NitzanWilnai rejestrowanie/debugowanie jest udokumentowane [tutaj] (http://socket.io/docs/logging-and-debugging/), a ustawienie portu zależy od tego, jak dokładnie działasz 'socket.io' (jako część aplikacji Express opartej na 'http' Node.js ...). – robertklep

1

Looging socket.io v1.0 log-level opcja jest usuwany. Dlatego do logowania należy uruchomić program za pomocą modułu debugowania.

  1. zainstalować debug: npm install debug -S
  2. następnie uruchomić program: DEBUG=* node entry_file.js
Powiązane problemy