Heim  >  Artikel  >  PHP-Framework  >  Was soll ich tun, wenn der Workerman-Client keine Verbindung herstellen kann?

Was soll ich tun, wenn der Workerman-Client keine Verbindung herstellen kann?

藏色散人
藏色散人Original
2019-12-12 14:19:154175Durchsuche

Was soll ich tun, wenn der Workerman-Client keine Verbindung herstellen kann?

ArbeiterWas soll ich tun, wenn der Client keine Verbindung herstellen kann?

Ursache für Client-Verbindungsfehler

Clients melden im Allgemeinen zwei Fehler, wenn die Verbindung fehlschlägt: Verbindungsverweigerung und Verbindungs-Timeout

Verbindung Ablehnen

Im Allgemeinen aus folgenden Gründen:

Der Port, mit dem der Client eine Verbindung herstellt, ist falsch

Der Domänenname, mit dem sich der Client verbindet, oder der IP ist falsch

3. Wenn der Client einen Domänennamen für die Verbindung verwendet, verweist der Domänenname möglicherweise auf die falsche Server-IP

4. Der Server ist nicht gestartet oder der Port wird nicht überwacht

5. Netzwerk-Proxy-Software wird verwendet

6. Die Serverüberwachungs-IP und die Zugriffsadresse liegen nicht im selben Adresssegment. Wenn der Server beispielsweise 127.0.0.1 überwacht, kann der Client nur eine Verbindung über 127.0.0.1 herstellen und keine Verbindung über LAN-IP oder externe Netzwerk-IP herstellen. Es wird empfohlen, die Abhöradresse auf 0.0.0.0 festzulegen, damit der lokale Computer, das interne Netzwerk und das externe Netzwerk eine Verbindung herstellen können.

Verbindungs-Timeout

Normalerweise aus folgenden Gründen:

1. Die Server-Firewall blockiert die Verbindung vorübergehend und versucht es

2. Wenn es sich um einen Cloud-Server handelt, verhindert die Sicherheitsgruppe möglicherweise auch den Verbindungsaufbau. Sie müssen den entsprechenden Port im Verwaltungshintergrund öffnen.

3 vorhanden oder nicht gestartet

4. Wenn der Client einen Domänennamen verwendet, um eine Verbindung herzustellen, verweist der Domänenname möglicherweise auf die falsche Server-IP

5. Die IP, auf die der Client zugreift, ist das Intranet des Servers IP und der Client und der Server befinden sich nicht im selben LAN

Andere Fehlerberichte

Wenn es sich bei dem gemeldeten Fehler nicht um Verbindungsverweigerung und Verbindungs-Timeout handelt, ist dies im Allgemeinen der Fall Aus folgenden Gründen:

1. Das vom Client verwendete Kommunikationsprotokoll stimmt nicht mit dem Server überein.

Zum Beispiel verwendet der Server das HTTP-Kommunikationsprotokoll und der Client kann keine Verbindung über das WebSocket-Kommunikationsprotokoll herstellen. Wenn der Client eine Verbindung über das Websocket-Protokoll herstellt, muss der Server auch das Websocket-Protokoll verwenden. Wenn der Server ein Dienst des HTTP-Protokolls ist, muss der Client für den Zugriff das HTTP-Protokoll verwenden.

Das Prinzip hier ähnelt dem, wenn Sie mit Briten kommunizieren möchten, dann verwenden Sie Englisch. Wenn Sie mit Japanern kommunizieren möchten, verwenden Sie Japanisch. Die Sprache ähnelt hier einem Kommunikationsprotokoll. Beide Parteien (Client und Server) müssen zur Kommunikation dieselbe Sprache verwenden, sonst ist keine Kommunikation möglich.

Häufige Fehler, die durch inkonsistente Kommunikationsprotokolle verursacht werden, sind:

WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: Unexpected response code: xxx
WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE

Lösung:

Aus den beiden oben genannten Fehlern ist ersichtlich, dass der Client die WS-Verbindung und den Websocket verwendet Protokoll. Der Server muss auch das WebSocket-Protokoll verwenden. Einige der serverseitigen Überwachungscodes müssen das WebSocket-Protokoll für die Kommunikation angeben, wie zum Beispiel das Folgende:

Wenn es sich um einen GatewayWorker handelt, ist der Überwachungsteil des Codes ähnlich wie

// websocket协议,这样客户端才能用ws://...来连。xxxx为端口不用改动
$gateway = new Gateway('websocket://0.0.0.0:xxxx');

Wenn es ein Workerman ist, ja

// websocket协议,这样客户端才能用ws://...来连。xxxx为端口不用改动
$worker = new Worker('websocket://0.0.0.0:xxxx');

Empfohlen:Workerman-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn der Workerman-Client keine Verbindung herstellen kann?. 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