Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [NodeJS][Socket.IO] Unexpected response code: 200
Forum PHP.pl > Forum > Po stronie przeglądarki
axl
Witam
od niedawna bawię się z NodeJS i mam taki problem mianowicie consola przeglądarki zwraca mi coś takiego
Kod
WebSocket connection to 'ws://node.*****.pl/socket.io/1/websocket/ejl0vdK7yG7daX-2tBjv' failed: Unexpected response code: 200

w tym consola z node js
Kod
info  - socket.io started
   info  - handshake authorized ejl0vdK7yG7daX-2tBjv
   warn  - websocket connection invalid
   info  - transport end (undefined)


dla subdomeny mam ustawiony htaccesstaki
Kod
RewriteEngine on
RewriteCond %{HTTP_HOST} ^node\.*****\.pl$ [OR]
RewriteCond %{HTTP_HOST} ^www\.node\.*****\.pl$


RewriteRule ^(.*)$ "http\:\/\/127\.0\.0\.1\:8080\/$1" [P,L]


po stronie clienta
Kod
var socket;
socket = io.connect("http://node.****.pl", { transports: ["websocket"]});
        
socket.on("connect", onSocketConnected);
socket.on("disconnect", onSocketDisconnect);
socket.on("new player", onNewPlayer);
socket.on("move player", onMovePlayer);
// i tak dalej same eventy już

po stronie serwera
Kod
var util = require("util"),
    io = require("socket.io"),
    Player = require("./player").Player; // osobna classa trzymająca dane gracza
    
var socket,
    players;
    
function init() {
    players = [];
    npc        = [];
    
    socket = io.listen(8080);

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


    setEventHandlers();
};

var setEventHandlers = function() {
    socket.sockets.on("connection", onSocketConnection);
};

function onSocketConnection(client) {
    util.log("New player has connected: "+client.id);
    client.on("disconnect", onClientDisconnect);
    client.on("new player", onNewPlayer);
    client.on("move player", onMovePlayer);
    client.on("shoot player", onShootPlayer);
    client.on("say", onSayPlayer);
    client.on("punch", onPunchPlayer);    
    client.on("dead player", onDeadPlayer);
};

/* funkcje onClientDisconnect itp */


init();

Bardzo proszę o pomoc, nie mam pojęcia o co tutaj chodzi

<b>EDIT</b>
na localhoscie działa bez problemu ale na tym serwerze już nie, sprawdzałem też na porcie 8000 i bez różnicy
werdan
Sprawdzałes te adresy ws:// ?

http://www.websocket.org/echo.html

Tu masz tester. Moze coś pomoże.
axl
Właśnie miałem pisać, co znalazłem ale za bardzo i tak nie wiem jak to rozwiązać to wina apacha że idzie przez mod rewrite ponieważ przez xhr-polling idzie prawidłowo wszystko działa jak należy ale niestety w tworzeniu gry xhr mnie interesuje ... wole websocket ,wydaje mi się lepszym rozwiązaniem. I właśnie przez tego mod_rewrite nie przekierowuje ws:// :/

//edit

adresy ws:/ muszą działać bo przy każdej próbie połaczenia w consoli nodeJs "wywala mi"
Kod
   info  - handshake authorized ejl0vdK7yG7daX-2tBjv
   warn  - websocket connection invalid
   info  - transport end (undefined)

i tak w kółko co każdą następna próbe połaczenia on("connection") więc adresy powinny być ok
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.