Ich möchte einen Websocket-Server erstellen. Ich habe gehört, dass socket.io eine gute Wahl ist.Websocket-Server mit nodejs + socket.io kann nicht durch Tester Sites verbunden werden, während ws kann
Ich versuchte socket.io mit nodejs (v4.4.7) (npm installieren --save socket.io), mit seiner Probe server side code. Ein wenig verwirrt, warum der clientseitige Code "http: //" anstelle des "ws: //" Protokolls verwendet, aber nachdem ich einen echten Server zum Testen eingerichtet habe, habe ich sowohl "http //" als auch "ws //" gefunden funktioniert mit dem offiziellen Code.
Alles ist gut bis jetzt. Aber bald fand ich, dass ich keine Verbindung herstellen können Drittanbieter-Online-Tester-Plätze wie:
1. www.websocket.org/echo.html
2. www.blue-zero.com/WebSocket
Die Verbindung schien nie hergestellt oder geschlossen so schnell wie möglich verbunden,
Ich fand "Firefox kann keine Verbindung zum Server unter ws: // mytestserver: 8888 /? Encoding = Text" in Firefox-Konsole,
oder "WebSocket Verbindung zu 'ws: // mytestserver: 8888' fehlgeschlagen: Verbindung wurde vor dem Empfang einer Handshake-Antwort in der Chrome-Konsole geschlossen.
Zuletzt habe ich socket.io in WS geändert (npm install --save ws). Beispielcode von github.com/websockets/ws verwenden. Alle Teststandorte funktionierten gut.
(Natürlich ist mein Endzweck nicht einen Tester Arbeit vor Ort zu machen. Die Tatsache, die websocket lib auf nopoll in meinem Chip integriert basiert, ist genau das gleiche Verhalten wie die Tester-Sites.)
Jeder weiß Der Grund, warum socket.io nicht mit Clients von Drittanbietern funktioniert, während ws das tut? Danke vielmals.
Wie ich 'wissen ws' verwenden nativen HTML-Buchse ohne zusätzliche Skripte auf Client-Seite. Andere Sockets ('socket.io',' sockjs' usw.) erfordern clientseitige Skripte. –