Node.js und socket.io wollen nicht miteinander

whyte

Grünschnabel
Hallo,

Ich versuche gerade, einen Socket-Server mittels node.js und socket.io zu erzeugen, der mir Daten an eine Webseite liefert.

Dafür habe ich das Beispiel von:
http://spiritconsulting.com.ar/fedex/2010/11/events-with-jquery-nodejs-and-socket-io/
(erste 2 Dateien) getestet.

Mein Ziel ist es, eine von Apache/PHP ausgelieferte Webseite an einen Socket Server verbinden zu lassen und aktuelle Events zu erfahren, bzw sie vom Server gepusht zu bekommen.

Beide Dateien habe ich auf meinen Server kopiert und den Server mit "node app.js" gestartet.
Das läuft auch wunderbar.

Rufe ich allerdings im Browser die index.html Seite auf, konnektiert er nicht auf den Server und ich habe mittlerweile null Plan, wieso nicht.

Ich habe in der index.html (2. Datei) die Zeile var socket = new io.Socket(null, {port: 8080}); noch angepasst in var socket = new io.Socket("http://socket.server.tld", 8080);

Allerdings sehe ich kein Connect.

Ein anderes Beispiel, in der der node.js Server die html Datei selbst ausgeliefert hat, funktionierte der Socketzugriff. Dies ist allerdings nicht mein Ziel ...

Danke für die Hilfe
gruß
whyte
 
Hat sich erledigt, scheinbar müssen Host und Port übereinstimmen, somit kann das natürlich nur von dem selbst ausgelieferten Server kommen.
 
Vielen Dank für die Antwort.

Ich habe leider nichts neuers - kleines - verständlicheres gefunden.
node.js usw fange ich gerade an. jQuery ist eher meine Welt.

Allerdings hab ich einfach nix ans laufen bekommen, wenn sich der Domain bzw Port geändert hat
 
Du hast mir extrem geholfen. Durch das Tutorial und die Beispieldateien konnte ich mein Problem lösen.

Letzendlich war es ein Denkfehler meinerseits.

Das Problem ist ganz einfach zu lösen:

- Man erstellt eine HTML Seite, die kann vom Apache aufgerufen werden.
- In dem HTML muss allerdings die socket.io vom Socketserver geladen werden, das macht er auch super brav und liefert den statischen Content aus.
- Somit kommt man auch nicht mehr mit dem Cross-Domain Problem in Konflikt.

Letztendlich sieht das so aus:

Code:
<script type="text/javascript" src="http://mein.server.tld:8080/socket.io/socket.io.js"></script>
<script type="text/javascript">
    var socket = new io.connect('http://mein.server.tld:8080');

Ich hatte allerdings auch noch einen Fehler in der Server-Datei, die in meinem oben angegebenen Beispiel drin war.
Auch das konnte ich durch das Tutorial ausmerzen und jetzt läuft das genau so, wie ich es mir vorstelle.
Danke nochmal!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück