Heim >PHP-Framework >Workerman >Wie erstelle ich einen einfachen TCP -Server mit Workerman?

Wie erstelle ich einen einfachen TCP -Server mit Workerman?

百草
百草Original
2025-03-11 14:58:17627Durchsuche

Wie erstelle ich einen einfachen TCP -Server mit Workerman? Stellen Sie zunächst sicher, dass Sie Workerman installiert haben. Sie können es normalerweise über Komponist installieren: Composer benötigt Workerman/Workerman . Erstellen Sie dann eine neue PHP -Datei (z. B. server.php ). Der folgende Code legt einen grundlegenden TCP -Server fest, der auf Port 2345 hört:
 <code class="php"> & lt;? Php Required_once __dir__. '/vendor/autoload.php'; Verwenden Sie Workerman \ Arbeiter; $ Worker = New Worker ("tcp: //0.0.0.0: 2345"); $ Worker- & gt; onconnect = function ($ connection) {echo & quot; Neue Verbindung von {$ connection- & gt; getRemoteip ()}: {$ connection- & gt; getRemoteport ()} \ n & quot ;; }; $ Worker- & gt; onmessage = Funktion ($ connection, $ data) {// Die Daten wieder an den Client $ connection- & gt; send ($ data); }; $ Worker- & gt; onclose = function ($ connection) {echo & quot; Verbindung geschlossen: {$ connection- & gt; getRemoteip ()}: {$ connection- & gt; getRemoteport ()} \ n & quot ;; }; Worker :: RunAll (); </code> 

Dieser Code verwendet die Klasse Workerman \ Worker , um einen TCP -Worker zu erstellen. tcp: //0.0.0.0: 2345 Gibt die Höradresse und den Port an. Die onconnect , onMessage und onclose Rückrufe handeln von Verbindungsereignissen, eingehenden Daten bzw. Verbindungsabschluss. Worker :: Runall () startet den Server. Denken Sie daran, dieses Skript von Ihrem Terminal mit PHP Server.php auszuführen. Es verwendet ein Mehrprozess- oder Multi-Thread-Modell (abhängig von Ihrer Konfiguration), um zahlreiche gleichzeitige Verbindungen effizient zu verwalten. Der Schlüssel zu diesem gleichzeitigen Handling liegt in der ereignisorientierten Architektur von Workerman. Wenn eine Verbindung eintrifft oder Daten empfangen werden, löst Workerman die entsprechenden Rückrufe ( onconnect , onMessage usw.) aus, ohne andere Verbindungen zu blockieren. Dies ermöglicht es ihm, viele Kunden ohne Leistungsverschlechterung zu bewältigen. Die Anzahl der gleichzeitigen Verbindungen hängt von den Ressourcen Ihres Servers (CPU, Speicher, Netzwerkbandbreite) ab. Sie können die Anzahl der Arbeitsprozesse anpassen, um Ihre spezifischen Anforderungen über die Konfigurationsoptionen von WorkerMan zu optimieren. Diese werden normalerweise im Objekt Worker festgelegt. Hier sind einige grundlegende Einstellungen:

  • Worker- & Gt; Count : Gibt die Anzahl der Arbeitsprozesse an. Das Erhöhen dieser Zahl kann die Leistung mit mehr Kunden verbessern, aber zu viele Prozesse können das System überlasten. Der Standardwert ist normalerweise 1. In einigen Szenarien nützlich, erfordert jedoch sorgfältige Überlegungen. Der Standardwert ist 'TCP'. Benötigt das Konfigurieren von SSL -Zertifikaten. Zum Beispiel:
     <code class="php"> $ worker = new Worker (& quot; tcp: //0.0.0.0: 2345 & quot;); $ Worker- & gt; count = 4; // Verwenden Sie 4 Arbeiterprozesse $ Worker- & gt; name = & quot; mytcpServer & quot ;; // ... Andere Einstellungen ... </code> 

    Wie sende und empfange ich Daten mit einem Workerman TCP -Server? Der Server empfängt Daten über den Parameter $ data des onmessage . Um Daten an den Client zurücksenden, verwenden Sie die Methode $ connection- & gt; send () . Sie können diese Daten nach Bedarf verarbeiten. Zum Beispiel:
     <code class="PHP"> $ Worker- & gt; onmessage = Funktion ($ connection, $ data) {$ empfangeneData = trim ($ data); // Leading/Trailing Whitespace Echo & quot; erhalten: & quot; . $ empfangendata. "\ n & quot ;; // Die empfangenen Daten verarbeiten ... $ response = & quot; Server empfangen: & quot; . $ empfangeneData; $ connection- & gt; send ($ response); }; </code> 

    Daten senden:

    Um Daten an den Client zurück zu senden, verwenden Sie die $ connection- & gt; send () Methode:

     <code classe="PHP"> $ Worker- & Gt; vom Server! "); }; </code> 

    Denken Sie daran, potenzielle Fehler (z. B. Verbindungsfehler) in Ihren Rückernständen angemessen zu behandeln. Dies bietet einen grundlegenden Framework zum Senden und Empfangen von Daten innerhalb Ihres Workerman TCP -Servers. Eine komplexere Datenhandhabung kann Serialisierung oder andere Datenstrukturierungstechniken beinhalten.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen einfachen TCP -Server mit Workerman?. 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