socket.io // websockets // nodejs

  • Ersteller Ersteller omaliesschen
  • Erstellt am Erstellt am
O

omaliesschen

Gast
Hi,

wenn sich jemand ein wenig hiermit auskennt wäre eine kleine Hilfestellung ganz nett.

Meine Website wird mit Lighttpd ausgeliefert. Dabei wird folgendes Skript aufgerufen um mit einem NodeJS Server zu kommunizieren:


Code:
<script src="/scripts/socket.io/node_modules/socket.io-client/dist/socket.io.min.js"></script>
<script>
  var socket = io.connect('http://192.168.2.45:8080');
  socket.on('connect', function(){
    $('#status').append('<b>Connection established</b>');
  });
</script>


Das ganze endet mit folgender Fehlermeldung:
Code:
[00:42:03.113] GET http://192.168.2.45:8080/socket.io/1/websocket/406985625940448138 [1ms]
[00:42:03.152] Firefox can't establish a connection to the server at ws://192.168.2.45:8080/socket.io/1/websocket/406985625940448138. @ http://192.168.2.45/scripts/socket.io/node_modules/socket.io-client/dist/socket.io.min.js:2
--


Danach wird scheinbar ein Fallbackmodus gewählt und eine Verbindung hergestellt:
Code:
[00:42:12.965] GET http://192.168.2.45:8080/socket.io/1/xhr-polling/406985625940448138?t=1369521732895 [HTTP/1.1 200 OK 1ms]
[00:42:12.967] GET http://192.168.2.45:8080/socket.io/1/xhr-polling/406985625940448138?t=1369521732915 [HTTP/1.1 200 OK 20003ms]
--
[00:42:33.093] GET http://192.168.2.45:8080/socket.io/1/xhr-polling/406985625940448138?t=1369521752932 [HTTP/1.1 200 OK 20004ms]
--
[00:42:53.077] GET http://192.168.2.45:8080/socket.io/1/xhr-polling/406985625940448138?t=1369521773003 [HTTP/1.1 200 OK 20004ms]


Ist natürlich nicht das gewünschte Ergebnis. Weiß jemand woran es hakt?

PS: Das hier "http://192.168.2.45/scripts/socket.io/node_modules/socket.io-client/dist/socket.io.min.js" würde noch angepasst werden. Denke ich schreib es mal dazu bevor es Kritik hagelt..
Ergänzung ()

Code:
  info  - socket.io started
   debug - client authorized
   info  - handshake authorized 315243058132495128
   debug - setting request GET /socket.io/1/websocket/315243058132495128
   debug - set heartbeat interval for client 315243058132495128
   warn  - websocket connection invalid
   info  - transport end
   debug - set close timeout for client 315243058132495128
   debug - cleared close timeout for client 315243058132495128
   debug - cleared heartbeat interval for client 315243058132495128
   debug - client authorized for 
   debug - setting request GET /socket.io/1/xhr-polling/315243058132495128?t=1369528379211
   debug - setting poll timeout
   debug - clearing poll timeout
   debug - xhr-polling writing 1::
   debug - set close timeout for client 315243058132495128
   debug - setting request GET /socket.io/1/xhr-polling/315243058132495128?t=1369528379228
   debug - setting poll timeout
   debug - discarding transport
   debug - cleared close timeout for client 315243058132495128
Ergänzung ()

@Daaron ?
 
Zuletzt bearbeitet:
Untersützt dein Webserver Websockets? Keine Ahnung ob das mittlerweile in Lighttpd integriert ist, früher brauchte man jedenfalls ein extra Modul dafür. Websockets sind keine "normalen" Sockets.
 
Die sockets laufen über NodeJS.

Problem ist übrigens gelöst. Fand es nur schade das unser "professioneller" nicht dabei war.

Als Wohltäter lag es mir dennoch am Herzen seinem Ego etwas gutes zu tun und ihm die Chance offen zu halten.^-^

Problem waren veraltete Versionen die ich damals vorgezogen hatte um Kompatibilitätsproblemen aus dem Weg zu gehen. Bei den Websockets hat sich allerdings soviel getan, auch auf Protokollebene, dass sie einfach ungültig waren.
 
Zuletzt bearbeitet:
Die Aussage von carom bleibt trotzdem bestehen, wenn der Webserver keine Websockets unterstützt und nicht gerade direkt nur ein TCP-Proxy genutzt wird, werden Websockets scheitern. Das siehst du in Socket.io nur nicht, weil dann eben eine der anderen Möglichkeiten, wie Long-Polling, genutzt wird.
 
Es wurde etwas wenig über die Konfiguration geschrieben. Selbst als Proxy scheint lighttpd in Verbindung mit Websockets problematisch zu sein, zumindest war das unlängst noch so. Aber wenn jetzt alles klappt ist ja gut :)
 
Man sieht ja in der Konsole wenn socket.io in den Fallback geht.

Zu dem lighttpd Problem kann ich nichts beitragen da es mich bisher nicht betrifft.
 
Zurück
Oben