Heim Backend-Entwicklung PHP-Tutorial Swoole 1.10.0 neue Version veröffentlicht, die viele neue Funktionsanalysen hinzufügt

Swoole 1.10.0 neue Version veröffentlicht, die viele neue Funktionsanalysen hinzufügt

Jul 02, 2018 pm 05:58 PM
swoole 版本

Swoole Version 1.10.0 wurde kürzlich veröffentlicht und bietet viele neue Funktionen. Der folgende Artikel stellt daher hauptsächlich relevante Informationen zu den neuen Funktionen in der Swoole 1.10.0-Version vor und teilt sie bei Bedarf als Referenz und zum Studium mit Freunden siehe

Vorwort

Swoole kann im Internet, in der Mobilkommunikation, in Unternehmenssoftware, in Cloud Computing, bei Online-Spielen usw. weit verbreitet eingesetzt werden das Internet der Dinge (IOT), das Internet der Fahrzeuge, Smart Home und andere Bereiche. Der Einsatz von PHP + Swoole als Netzwerkkommunikations-Framework kann die Effizienz von IT-Forschungs- und Entwicklungsteams in Unternehmen erheblich verbessern und sich stärker auf die Entwicklung innovativer Produkte konzentrieren. Kürzlich hat Swoole, die asynchrone, parallele und leistungsstarke Netzwerkkommunikations-Engine von PHP, Version 1.10.0 veröffentlicht. Diese Version fügt mehrere neue Funktionen hinzu. Im Folgenden gibt es nicht viel zu sagen. Werfen wir einen Blick auf die ausführliche Einführung.

Automatische DNS-Auflösung

Die neue Version des asynchronen Clients muss swoole_async_dns_lookup nicht mehr verwenden, um Domänennamen aufzulösen, und die Die unterste Ebene implementiert die automatische Analyse von Domänennamen. Der Client kann den Domänennamen direkt übergeben, wenn er die Verbindungsmethode ausführt.

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$client->on("connect", function(swoole_client $cli) {
 $cli->send("GET / HTTP/1.1\r\n\r\n");
});
$client->on("receive", function(swoole_client $cli, $data){
 echo "Receive: $data";
 $cli->send(str_repeat('A', 100)."\n");
 sleep(1);
});
$client->on("error", function(swoole_client $cli){
 echo "error\n";
});
$client->on("close", function(swoole_client $cli){
 echo "Connection close\n";
});
//底层会自动进行异步域名解析
$client->connect('www.baidu.com', 9501);
Nach dem Login kopieren

Langsames Anforderungsprotokoll

Die neue Version fügt die Verfolgung von langsamen Anfragen hinzu Anfragen Funktion, die den PHP-Funktionsaufrufstapel langsamer Anfragen aufzeichnen kann.

function test()
{
 test_sleep();
}
function test_sleep()
{
 echo "sleep 5\n";
 sleep(5);
}
$server = new swoole_server('127.0.0.1', 9501);
$server->set([
 'worker_num' => 1,
 'task_worker_num' => 1,
 'trace_event_worker' => true,
 'request_slowlog_timeout' => 1,
 'request_slowlog_file' => '/tmp/trace.log',
]);
$server->on('Receive', function($serv, $fd, $reactor_id, $data) {
 test();
 $serv->send($fd, "Swoole: $data");
});
$server->start();
Nach dem Login kopieren

Nach der Verarbeitung der langsamen Anfrage wird eine Fehlermeldungszeile im /tmp/trace.log-Protokoll gedruckt:

[08-Jan-2018 15:21:57] [worker#0] pid 26905
[0x00007f60cda22340] sleep() /home/htf/workspace/swoole/examples/server/trace.php:10
[0x00007f60cda222e0] test_sleep() /home/htf/workspace/swoole/examples/server/trace.php:4
[0x00007f60cda22280] test() /home/htf/workspace/swoole/examples/server/trace.php:28
[0x00007f60cda22190] {closure}() /home/htf/workspace/swoole/examples/server/trace.php:42
[0x00007f60cda22140] start() /home/htf/workspace/swoole/examples/server/trace.php:42
Nach dem Login kopieren

Neues STREAM-Modul

Das neue Stream-Modul sorgt für die Kommunikation zwischen Reactor-, Worker- und Task-Prozessen komfortabler. Flexible, maximale Entkopplung. Komplexe Online-Projekte nutzen den Stream-Modus, um die Anforderungszuteilung und -planung effizienter zu gestalten.

$serv = new swoole_server("127.0.0.1", 9501);
$serv->set(array(
 'dispatch_mode' => 7,
 'worker_num' => 2,
));
$serv->on('receive', function (swoole_server $serv, $fd, $threadId, $data)
{
 var_dump($data);
 echo "#{$serv->worker_id}>> received length=" . strlen($data) . "\n";
});
$serv->start();
Nach dem Login kopieren

  • Kommunikation zwischen Reaktor und Worker, verwenden Sie „dispatch_mode = 7“, um die

  • -Kommunikation zu aktivieren Verwenden Sie zwischen Worker und Task task_ipc_mode = 4, um

Funktion „Event::cycle hinzufügen“

zu aktivieren Der Benutzercode kann eine EventLoop-Hook-Funktion anpassen, die am Ende jeder Runde der Ereignisschleife aufgerufen wird. Es ist praktisch, Generator + Yield oder das Promise-ähnliche Swoole-Framework zu verwenden, um Ihren eigenen Planer zu implementieren.

Swoole\Timer::tick(2000, function ($id) {
 var_dump($id);
});
Swoole\Event::cycle(function () {
 echo "hello [1]\n";
 Swoole\Event::cycle(function () {
 echo "hello [2]\n";
 Swoole\Event::cycle(null);
 });
});
Nach dem Login kopieren

Andere Updates

  • Update-Tabelle ::incr und Table::decr unterstützen vorzeichenbehaftete Ganzzahlen

  • Kompatibel mit PHP-7.2-Version

  • Fehler der Event::del-Funktion behoben Das Problem beim Entfernen des Standard-Eingabehandles

  • Das Problem, dass das Timer-Intervall im Task-Prozess kürzer als das Client-Empfangs-Timeout war, was zu einem Client::recv-Deadlock führte

  • Fügen Sie das Konfigurationselement ssl_host_name hinzu, um die Legitimität des SSL/TLS-Hosts zu überprüfen

  • Wenn „dispatch_mode = 3“ verwendet wird, wird ein Fehlerprotokoll gedruckt, wenn alle Worker sind beschäftigt

  • Fügen Sie einen Port-Iterator hinzu, um alle Verbindungen eines Überwachungsports zu durchlaufen

  • Beheben Sie das Speicherausrichtungsproblem von Table auf Nicht-x86-Plattformen

  • Beheben Sie das Problem einer ungültigen max_request-Konfiguration im BASE-Modus

  • Beheben Sie das Problem, dass der WebSocket-Server einen Paketfehler zurückgibt, wenn einige Client-Ping-Frames eine Maske enthalten Daten

  • Das Problem des Hängenbleibens, wenn HttpClient die HEAD-Methode verwendet, um mit Content-Length zu antworten, wurde behoben

  • Unterstützung des asynchronen MySQL-Clients für das JSON-Format erhöhen

Download-Adresse

GITHUB: https://github.com/swoole/swoole-src/ releases/tag/v1.10.0

Open Source China: https://gitee.com/swoole/swoole/tree/v1.10.0/

PECL: https://pecl.php .net/package/swoole/1.10.0

Lokaler Download: http://xiazai.jb51.net/201801/yuanma/swoole-src-1.10.0(jb51.net).rar

Zusammenfassung

Artikel, die Sie interessieren könnten:

PHP implementiert eine Druckmatrix im Uhrzeigersinn ( Beispielerklärung für eine Spiralmatrix-Methode

PHP-Methode zur Bestimmung, ob ein Binärbaum symmetrisch ist

PHP verwendet eine Zeile Codebeispiel zum Löschen aller Dateien in einem Verzeichnis

Das obige ist der detaillierte Inhalt vonSwoole 1.10.0 neue Version veröffentlicht, die viele neue Funktionsanalysen hinzufügt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So überprüfen Sie schnell die Numpy-Version So überprüfen Sie schnell die Numpy-Version Jan 19, 2024 am 08:23 AM

Numpy ist eine wichtige Mathematikbibliothek in Python. Sie bietet effiziente Array-Operationen und wissenschaftliche Berechnungsfunktionen und wird häufig in den Bereichen Datenanalyse, maschinelles Lernen, Deep Learning und anderen Bereichen verwendet. Bei der Verwendung von Numpy müssen wir häufig die Versionsnummer von Numpy überprüfen, um die von der aktuellen Umgebung unterstützten Funktionen zu ermitteln. In diesem Artikel erfahren Sie, wie Sie die Numpy-Version schnell überprüfen und spezifische Codebeispiele bereitstellen. Methode 1: Verwenden Sie das __version__-Attribut, das mit numpy geliefert wird. Das numpy-Modul wird mit einem __ geliefert.

So überprüfen Sie die Maven-Version So überprüfen Sie die Maven-Version Jan 17, 2024 pm 05:06 PM

Methoden zum Überprüfen der Maven-Version: 1. Verwenden Sie die Befehlszeile. 3. Überprüfen Sie die IDE. Detaillierte Einführung: 1. Verwenden Sie die Befehlszeile, geben Sie „mvn -v“ oder „mvn --version“ in die Befehlszeile ein und drücken Sie dann die Eingabetaste. Dadurch werden die Maven-Versionsinformationen und die Java-Versionsinformationen angezeigt Variablen: Auf einigen Systemen können Sie die Umgebungsvariablen überprüfen, um die Maven-Versionsinformationen zu finden, den Befehl in die Befehlszeile eingeben und dann die Eingabetaste drücken usw.

Tutorial zum Aktualisieren der Curl-Version unter Linux! Tutorial zum Aktualisieren der Curl-Version unter Linux! Mar 07, 2024 am 08:30 AM

Um die Curl-Version unter Linux zu aktualisieren, können Sie die folgenden Schritte ausführen: Überprüfen Sie die aktuelle Curl-Version: Zunächst müssen Sie die im aktuellen System installierte Curl-Version ermitteln. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus: curl --version Dieser Befehl zeigt die aktuellen Informationen zur Curl-Version an. Verfügbare Curl-Version bestätigen: Bevor Sie Curl aktualisieren, müssen Sie die neueste verfügbare Version bestätigen. Sie können die offizielle Website von Curl (curl.haxx.se) oder verwandte Softwarequellen besuchen, um die neueste Version von Curl zu finden. Laden Sie den Curl-Quellcode herunter: Laden Sie mit Curl oder einem Browser die Quellcodedatei für die Curl-Version Ihrer Wahl herunter (normalerweise .tar.gz oder .tar.bz2).

Überprüfen Sie die Version des Kirin-Betriebssystems und des Kernels Überprüfen Sie die Version des Kirin-Betriebssystems und des Kernels Feb 21, 2024 pm 07:04 PM

Überprüfen der Kylin-Betriebssystemversion und der Kernelversion Im Kirin-Betriebssystem ist das Wissen, wie die Systemversion und die Kernelversion überprüft werden, die Grundlage für die Systemverwaltung und -wartung. Methode 1 zum Überprüfen der Kylin-Betriebssystemversion: Verwenden Sie die Datei /etc/.kyinfo. Um die Kylin-Betriebssystemversion zu überprüfen, können Sie die Datei /etc/.kyinfo überprüfen. Diese Datei enthält Informationen zur Betriebssystemversion. Führen Sie den folgenden Befehl aus: cat/etc/.kyinfo Dieser Befehl zeigt detaillierte Versionsinformationen des Betriebssystems an. Methode 2: Verwenden Sie die Datei /etc/issue. Eine andere Möglichkeit, die Betriebssystemversion zu überprüfen, besteht darin, sich die Datei /etc/issue anzusehen. Diese Datei enthält auch Versionsinformationen, ist jedoch möglicherweise nicht so gut wie die .kyinfo-Datei

Einfache Schritte zum Aktualisieren der Pip-Version: in 1 Minute erledigt Einfache Schritte zum Aktualisieren der Pip-Version: in 1 Minute erledigt Jan 27, 2024 am 09:45 AM

In einer Minute erledigt: So aktualisieren Sie die Pip-Version. Mit der rasanten Entwicklung von Python ist Pip zu einem Standardtool für die Python-Paketverwaltung geworden. Mit der Zeit werden die Pip-Versionen jedoch ständig aktualisiert. Um die neuesten Funktionen nutzen und mögliche Sicherheitslücken schließen zu können, ist es sehr wichtig, die Pip-Version zu aktualisieren. In diesem Artikel wird erläutert, wie Sie Pip in einer Minute schnell aktualisieren können, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir ein Befehlszeilenfenster öffnen. In Windows-Systemen können Sie verwenden

So überprüfen Sie ganz einfach die installierte Version von Oracle So überprüfen Sie ganz einfach die installierte Version von Oracle Mar 07, 2024 am 11:27 AM

Um die installierte Version von Oracle einfach zu überprüfen, sind spezifische Codebeispiele erforderlich. Da es sich bei der Oracle-Datenbank um eine in Datenbankverwaltungssystemen auf Unternehmensebene weit verbreitete Software handelt, gibt es viele Versionen und unterschiedliche Installationsmethoden. In unserer täglichen Arbeit müssen wir häufig die installierte Version der Oracle-Datenbank auf entsprechende Betriebs- und Wartungsarbeiten überprüfen. In diesem Artikel erfahren Sie, wie Sie die installierte Version von Oracle einfach überprüfen können, und geben konkrete Codebeispiele. Methode 1: Durch SQL-Abfrage in der Oracle-Datenbank können wir

Wie kann man feststellen, ob die dp-Schnittstelle 1.2 oder 1.4 ist? Wie kann man feststellen, ob die dp-Schnittstelle 1.2 oder 1.4 ist? Feb 06, 2024 am 10:27 AM

Die DP-Schnittstelle ist ein wichtiges Schnittstellenkabel im Computer. Viele Benutzer möchten wissen, wie sie überprüfen können, ob die DP-Schnittstelle 1.2 oder 1.4 ist. Tatsächlich müssen sie sie nur in GPU-Z überprüfen. So ermitteln Sie, ob die dp-Schnittstelle 1.2 oder 1.4 ist: 1. Wählen Sie zunächst „Erweitert“ in GPU-Z. 2. Schauen Sie sich „Monitor1“ in „Allgemein“ unter „Erweitert“ an, dort sehen Sie die beiden Punkte „LinkRate (aktuell)“ und „Lanes (aktuell)“. 3. Wenn schließlich 8,1 Gbit/s × 4 angezeigt wird, bedeutet dies DP1.3-Version oder höher, normalerweise DP1.4. Wenn es 5,4 Gbit/s × 4 ist

Nach 750.000 Runden Einzelkampf zwischen großen Modellen gewann GPT-4 die Meisterschaft und Llama 3 belegte den fünften Platz Nach 750.000 Runden Einzelkampf zwischen großen Modellen gewann GPT-4 die Meisterschaft und Llama 3 belegte den fünften Platz Apr 23, 2024 pm 03:28 PM

Zu Llama3 wurden neue Testergebnisse veröffentlicht – die große Modellbewertungs-Community LMSYS veröffentlichte eine große Modell-Rangliste, die Llama3 auf dem fünften Platz belegte und mit GPT-4 den ersten Platz in der englischen Kategorie belegte. Das Bild unterscheidet sich von anderen Benchmarks. Diese Liste basiert auf Einzelkämpfen zwischen Modellen, und die Bewerter aus dem gesamten Netzwerk machen ihre eigenen Vorschläge und Bewertungen. Am Ende belegte Llama3 den fünften Platz auf der Liste, gefolgt von drei verschiedenen Versionen von GPT-4 und Claude3 Super Cup Opus. In der englischen Einzelliste überholte Llama3 Claude und punktgleich mit GPT-4. Über dieses Ergebnis war Metas Chefwissenschaftler LeCun sehr erfreut und leitete den Tweet weiter

See all articles