2016-04-18 14 views
1

Welchen Anschluss sollte ich bei Verwendung von socket.io hören/emittieren?Welcher Port wird mit socket.io verwendet?

Ich benutzte ursprünglich 2053 mit meiner SSL-Webseite, fand aber, nachdem ich die Webseite in einer Schule benutzt hatte, dass 2053 blockiert worden war.

Also, gibt es einen bestimmten Port, den ich verwenden sollte, der garantiert nicht blockiert wird? Oder sollte ich davon ausgehen, könnte blockiert werden?

Danke.

+0

Wir benötigen weitere Informationen über Ihren Server, ist es in Ihrer Kontrolle? Oder mieten Sie einen Server? Ist es mit einer anderen Website gehostet? Wird socket.io auch für HTML verwendet? – DrakaSAN

+0

Es ist ein dedizierter Server und ich habe die vollständige Kontrolle. Die Hauptwebseite ist Drupal, aber ich betreibe auch socket.io für ein einfaches Echtzeit-Spiel – lombrozo

+0

Wenn Sie die vollständige Kontrolle haben, dann sollten Sie sicherstellen können, dass der Port nicht blockiert ist, haben Sie vielleicht ein übereifriges AV oder vergessen um eine Ausnahme in Ihrer Firewall zu machen. Ich bezweifle, dass dies ein Programmierproblem ist. – DrakaSAN

Antwort

2

Zunächst einmal, wenn Sie node.js sowohl für Ihre Website als auch für Ihre socket.io-Verbindungen verwenden, verwenden Sie normalerweise denselben Port für socket.io, den Sie für Ihre Website verwenden (egal welche Portnummer das ist). Da die meisten Websites auf Port 80 (http) oder 443 (https) betrieben werden, würden Sie das verwenden. Da jede webSocket-Verbindung (auf der socket.io basiert) mit einer http (s) -Anforderung beginnt, können sie einen Port mit Ihren normalen Webanforderungen teilen, und dies ist ein zentraler Teil des webSocket-Designs. Dies vereinfacht auch die Sicherheit der gleichen Ursprungsanforderung im Browser, da keine herkunftsübergreifende Header-Unterstützung benötigt wird, um sich mit demselben Host/Port zu verbinden, von dem die Webseite kam.

Für professionell gehostete Websites müssen Sie wahrscheinlich auf die Anweisungen zur Verwendung von webSocket-Verbindungen für Ihr bestimmtes Hosting-Unternehmen zurückgreifen. Da webSocket/socket.io-Verbindungen eine lange Lebensdauer haben, benötigen sie oft spezielle Unterstützung in einer typischen Hosting-Umgebung und müssen möglicherweise auf eine bestimmte Art und Weise ausgeführt werden. Und da das Hosting-Unternehmen die Infrastruktur unter vielen Standorten teilen kann, werden Ihnen oft bestimmte Ports zugewiesen, die Sie verwenden können und die nicht unbedingt frei sind, nur einen Port zu verwenden.

Für Ihr Schulende der Verbindung werden die Ports 80 und 443 geöffnet sein, solange die Schule das Surfen im Internet erlaubt, damit diese Ihre sichersten Wetten sind.

FYI, die Website http://portquiz.net/ lauscht für HTTP-Anfragen auf allen Ports, damit Sie jeden gewünschten Port damit testen können.

+0

Immer wenn ich auf 443 versuche und höre, läuft der Prozess einfach ab - dh ich gebe 'an Port hören ...' in der Callback-Funktion aus, um zu hören, aber es wird nie erreicht, das Skript wird gerade beendet ... – lombrozo

+0

@lombrozo - Wahrscheinlich ein Fehlercode von '.createServer()' oder von '.listen()', der Ihnen sagen wird, warum es fehlschlägt. – jfriend00

+0

@lombrozo - Siehe den letzten Absatz, den ich meiner Antwort hinzugefügt habe, um zu testen, welche Ports für ausgehende Verbindungen von Ihrem Schulnetzwerk aus offen sind. – jfriend00

Verwandte Themen