2016-09-04 5 views
0

Ich verwende ein Online-Spiel mit Nodejs und Websockets. Als Websocket-Bibliothek verwende ich das Modul "ws". Ich benutze nodejs nicht, um einen HTTP-Server zu betreiben Ich benutze Apache + php, um die Website/den Klienten und nodejs zu hosten, die ich nur als websocket Server laufen lasse.Nodejs "ws" Websocket Server

Soweit ich weiß, um eine Websocket-Verbindung (auf Port 443) zu öffnen, muss ein Handshake in einem anderen Port vorgenommen werden. Ich verwende Port 3000 in meinem Fall (seit Port 80 läuft mein Apache-Server).

Auf meiner server.js-Datei (die Datei, in NodeJS beginnt) ich diesen Code bin mit dem websocket Server zu initialisieren:

var PORT = 3000; 
var WebSocketServer = require('ws').Server; 
var wsServer = new WebSocketServer({ port: PORT }); 

Und wenn Besuch www.mywebsite.com:3000 ist erhalte ich diesen Text Meldung "Upgrade erforderlich". Was ich tun möchte, ist, die Anzahl der Clients zu drucken, die mit dem Server verbunden sind, wenn ich auf diesen Port zugreife. Ist es möglich zu machen, da ich den "ws" -Modul nativen Server verwende?

Danke, wenn Sie meine Frage nicht klar verstanden haben, bitte sagen Sie mir auf die Kommentare.

+0

Es ist kein Duplikat von dieser Frage. Weil ich einen HTTP-Server habe. Ich möchte die Anzahl der Online-Clients auf dem PORT 3000 anzeigen, wenn der Browser nicht versucht, einen Websocket-Handshake zu erstellen. Auf diese Weise muss ich nicht 2 Server auf NodeJS halten und ich werde etwas CPU sparen. (Ich denke nicht, dass es sich lohnt, einen anderen Server zu erstellen, nur um eine Nummer zu drucken) –

+0

Auch mein HTTP-Server, der Apache ausführt, ist in einem Computer mit einer IP und dann von meiner Website wählen Sie den Server, wo Sie einen Websocket einrichten möchten Verbindung (basierend auf Ihrem Standort). Was ich jetzt brauche, ist eine Möglichkeit, die Anzahl der Clients auf jedem Server auszudrucken und sie dann auf meiner Homepage anzuzeigen. Ich könnte es mit Web-Sockets tun, aber ich musste eine Websocket-Verbindung zu jedem Server öffnen und dann die Anzahl der Clients online anfordern. Also dachte ich, es wäre einfacher, einfach die Nummer auf dem Port 3000 auszudrucken. –

+1

Nun, dann suchst du wahrscheinlich nach http://stackoverflow.com/questions/20919947/serve-websocket-and-http-server-at-same- address-on-node-js ... – bwoebi

Antwort

1

Ich habe auch das gleiche Problem getroffen. Kann das Problem von WS-Modul sein. Zuletzt benutze ich HTTP-Modul, um es selbst zu schreiben

Verwandte Themen