Heim  >  Artikel  >  PHP-Framework  >  Mehrere Probleme, die Worker-Entwickler kennen müssen

Mehrere Probleme, die Worker-Entwickler kennen müssen

尚
nach vorne
2019-11-26 15:44:565183Durchsuche

Die folgende Tutorial-Kolumne von workerman stellt Ihnen einige Themen vor, die Workerman-Entwickler kennen müssen. Ich hoffe, dass sie Freunden in Not hilfreich sein wird!

Mehrere Probleme, die Worker-Entwickler kennen müssen

1. Workerman ist nicht auf Apache oder Nginx angewiesen

Workerman selbst ist bereits ein Container ähnlich wie Apache/ nginx. Solange die PHP-Umgebung in Ordnung ist, kann Workerman ausgeführt werden.

2. Workerman wird über die Befehlszeile gestartet

Die Startmethode ähnelt der von Apache mit dem Befehl (Workerman kann nicht in allgemeinen Webspaces verwendet werden). Die Startoberfläche ähnelt der folgenden

Mehrere Probleme, die Worker-Entwickler kennen müssen

3. Für eine lange Verbindung muss ein Heartbeat hinzugefügt werden

Ein Heartbeat muss hinzugefügt werden Für eine lange Verbindung muss ein Herzschlag hinzugefügt werden. Bei langen Verbindungen muss ein Herzschlag hinzugefügt und wichtige Dinge dreimal gesagt werden.

Eine lange Verbindung ohne Kommunikation über einen längeren Zeitraum wird definitiv von der Firewall blockiert und getrennt. Die Langzeitverbindungsanwendung ohne Heartbeat wartet nur darauf, dass der Chef Sie KO schlägt.

4. Die Client- und Serverprotokolle müssen übereinstimmen, um kommunizieren zu können

Dies ist ein sehr häufiges Problem unter Entwicklern. Wenn der Client beispielsweise das Websocket-Protokoll verwendet, muss der Server auch das Websocket-Protokoll verwenden (server new Worker('websocket://0.0.0.0...')), um eine Verbindung herstellen und kommunizieren zu können.

Versuchen Sie nicht, auf den WebSocket-Protokoll-Port in der Adressleiste des Browsers zuzugreifen, und versuchen Sie nicht, das WebSocket-Protokoll zu verwenden, um auf den Bare-TCP-Protokoll-Port zuzugreifen. Das Protokoll muss übereinstimmen.

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 der Kommunikationsvereinbarung. Beide Parteien (Client und Server) müssen zur Kommunikation dieselbe Sprache verwenden, sonst ist keine Kommunikation möglich.

5. Mögliche Gründe für Verbindungsfehler

Ein sehr häufiges Problem bei der ersten Verwendung von Workerman ist, dass der Client keine Verbindung zum Server herstellen kann. Die Gründe sind im Allgemeinen wie folgt:

1. Die Server-Firewall (einschließlich der Cloud-Server-Sicherheitsgruppe) blockiert die Verbindung (50 % Wahrscheinlichkeit dafür)

2. Die vom Client verwendeten Protokolle und der Server sind inkonsistent (30 % Chance)

3 Die IP oder der Port ist falsch geschrieben (15 % Chance)

Der Server ist nicht gestartet

6. Verwenden Sie nicht die Exit-Die-Anweisung

. Die geschäftliche Ausführung der Exit-Die-Anweisung führt dazu, dass der Prozess beendet wird und der Fehler WORKER EXIT UNEXPECTED angezeigt wird. Wenn der Prozess beendet wird, wird natürlich sofort ein neuer Prozess neu gestartet, um den Dienst fortzusetzen. Wenn Sie zurückkommen müssen, können Sie die Rücksendung anrufen. Die Sleep-Anweisung führt dazu, dass der Prozess in den Ruhezustand versetzt wird und das Framework nicht mehr ausgeführt wird, was dazu führt, dass alle Client-Anfragen des Prozesses nicht verarbeitet werden können.

7. Der Geschäftscode darf keine Endlosschleife enthalten.

Der Geschäftscode darf keine Endlosschleife enthalten, da sonst die Kontrolle nicht an den zurückgegeben wird Worker-Framework, was dazu führt, dass die Verarbeitung anderer Client-Nachrichten nicht empfangen werden kann.

8. Starten Sie neu, wenn Sie den Code ändern

Workerman ist ein speicherresidentes Framework. Wenn Sie den Code ändern, müssen Sie Workerman neu starten, um die Auswirkungen des neuen zu sehen Code.

9. Es wird empfohlen, das GatewayWorker-Framework für Langzeitverbindungsanwendungen zu verwenden.

Viele Entwickler verwenden Workerman, um Langzeitverbindungsanwendungen wie Instant Messaging zu entwickeln , Internet der Dinge usw., Langzeitverbindungsanwendungen Es wird empfohlen, das GatewayWorker-Framework direkt zu verwenden, das speziell auf Workerman-Basis gekapselt ist, um die Verwendung als Backend für Langzeitverbindungsanwendungen einfacher und einfacher zu gestalten.

10. Unterstützen Sie eine höhere Parallelität

Wenn die Anzahl der gleichzeitigen Geschäftsverbindungen 1.000 gleichzeitig online übersteigt, optimieren Sie unbedingt den Linux-Kernel und installieren Sie die Ereigniserweiterung oder libevent-Erweiterung.

Weitere Workerman-Tutorials finden Sie in der Spalte Workerman-Tutorials.

Das obige ist der detaillierte Inhalt vonMehrere Probleme, die Worker-Entwickler kennen müssen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:workerman. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen