Heim  >  Artikel  >  Web-Frontend  >  So lösen Sie das Fehlerberichterstattungsproblem von sockjs-node

So lösen Sie das Fehlerberichterstattungsproblem von sockjs-node

藏色散人
藏色散人Original
2021-12-08 11:18:315644Durchsuche

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.

So lösen Sie das Fehlerberichterstattungsproblem von sockjs-node

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

Projekthintergrund

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:
So lösen Sie das Fehlerberichterstattungsproblem von sockjs-node

Problemort:

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.

Lösung:

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.

Fazit

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn