Lösung für den von sockjs-node gemeldeten Fehler: 1. Konfigurieren Sie Port 9097 auf Nginx. 2. Ermöglichen Sie, dass „/sockjs-node“ ordnungsgemäß an den tatsächlichen Port der Maschine weitergeleitet wird.
Die Betriebsumgebung dieses Artikels: Windows 7-System, NodeJS-Version 10.16.2, Dell G3-Computer.
Wie löse ich das Problem mit der Fehlerberichterstattung im SockJS-Knoten?
sockjs-node-Schnittstellenfehlerlösung
Bei der Übernahme der Winkelprojekte anderer Personen (vue.js kann dieses Problem ebenfalls auftreten), um das domänenübergreifende Problem zu lösen Front-End Nachdem Nginx konfiguriert wurde und das Projekt gestartet wurde, meldet das Hintergrund-WS einen Fehler, wie in der folgenden Abbildung dargestellt:
Gehen Sie online nach der Fehlerursache und finden Sie sie dass sockjs-node die Schnittstelle für das Hot-Loading von NodeJS für den Browser und die lokale Kommunikation ist. Die Hot-Loading-Funktion schlägt fehl. Der Grund für den Fehler liegt also darin, dass diese Kommunikationsschnittstelle auf den 9097-Port des Nginx-Proxys zugreift und nicht auf den 8082-Port, auf dem der eigentliche Dienst gestartet wird, sodass keine Kommunikation durchgeführt werden kann.
Konfigurieren Sie diesen 9097-Port auf Nginx, sodass /sockjs-node normalerweise einen Proxy für den tatsächlichen Port der Maschine herstellen kann, um das Problem zu lösen.
Spezifische Maßnahmen:
Nginx-Konfiguration in Nginx hinzufügen
http { include mime.types; default_type application/octet-stream; map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 9097; server_name localhost; location /sockjs-node { proxy_pass http://0.0.0.0:8082; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }
Hinweis: Das Wichtigste an dem oben Gesagten ist, die folgenden zwei Zeilen zur Reverse-Proxy-Konfiguration hinzuzufügen. Die anderen Teile unterscheiden sich nicht vom normalen HTTP-Reverse-Proxy.
roxy_set_header Upgrade $http_upgrade;
Proxy_set_header Connection $connection_upgrade;
Der entscheidende Teil hier ist, dass die HTTP-Anfrage den folgenden Header hat:
Upgrade: websocket
Verbindung: Upgrade
Diese beiden Felder geben an, dass das Upgrade-Protokoll des Anforderungsservers WebSocket ist.
In tatsächlichen Situationen kann es viele Gründe für die Fehlerberichterstattung von /sockjs-node geben, einschließlich Shadowsock-Proxy, NodeJS-Konfiguration usw. Solange Sie die Art des Problems verstehen und ws korrekt den Zugriff auf das tatsächliche lokale System ermöglichen Adresse.
Empfohlenes Lernen: „nodejs Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Fehlerberichterstattungsproblem von sockjs-node. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!