Heim > Backend-Entwicklung > PHP-Tutorial > Klicken Sie in Thinkphp direkt auf Swoole

Klicken Sie in Thinkphp direkt auf Swoole

coldplay.xixi
Freigeben: 2023-04-08 19:10:02
nach vorne
4525 Leute haben es durchsucht


🎜>

Swoole ist eine asynchrone PHP-Netzwerkkommunikations-Engine für Produktionsumgebungen. Ermöglicht PHP-Entwicklern das Schreiben leistungsstarker asynchroner und gleichzeitiger TCP-, UDP-, Unix-Socket-, HTTP- und WebSocket-Dienste.

Klicken Sie in Thinkphp direkt auf Swoole

Installation

Installieren Sie zuerst die Swoole-Erweiterung gemäß den Anweisungen auf der offiziellen Swoole-Website und installieren Sie dann die Think-Swoole-Erweiterung.

composer require topthink/think-swoole=2.0.*使用
Nach dem Login kopieren

Verwenden Sie

Swoole unterstützt derzeit kein Windows

Verwenden Sie Swoole als HttpServer

Starten Sie den Server von Befehlszeile (erfordert Version 2.0+ think-swoole-Erweiterung)

Starten Sie den Server direkt über die Befehlszeile.

php think swoole
Nach dem Login kopieren
Nach Abschluss des Startvorgangs wird ein HTTP-Server unter 0.0.0.0:9501 gestartet, der direkt auf die aktuelle Anwendung zugreifen kann.

Swoole-Parameter können in swoole.php im Anwendungskonfigurationsverzeichnis konfiguriert werden (Einzelheiten finden Sie im Inhalt der Konfigurationsdatei).

Wenn Sie im Daemon-Modus ausführen müssen, können Sie

php think swoole -d
Nach dem Login kopieren

verwenden oder

'daemonize' =>   true
Nach dem Login kopieren

in der swoole.php-Datei festlegen. Hinweis: Da es bei onWorkerStart kein HTTP_HOST gibt läuft, der letzte Glücklicherweise unterstützt das Setzen von app_host in der Anwendungskonfigurationsdatei

Vorgänge wie

php think swoole [start|stop|reload|restart]
Nach dem Login kopieren

Da es beim Ausführen von onWorkerStart keinen HTTP_HOST gibt, ist es am besten, den Parameter app_host im festzulegen Anwendungskonfigurationsdatei

Nach dem Start kann mit

http://127.0.0.1:9501
Nach dem Login kopieren

auf Ihre App zugegriffen werden.

Wenn Sie die Adresse und den Port konfigurieren müssen, können Sie die Konfigurationsdatei

swoole.php im Anwendungskonfigurationsverzeichnis hinzufügen und dann Folgendes festlegen:

<?phpreturn [
    &#39;host&#39;  => &#39;tp5.com&#39;,
    &#39;port&#39;  =>   9508,];
可以支持Swoole自身的配置参数设置,例如:
<?phpreturn [
    &#39;host&#39;          => &#39;tp5.com&#39;,
    &#39;port&#39;          =>   9508,
    &#39;worker_num&#39;    =>   4,
    &#39;max_request&#39;   =>   1000,];
Nach dem Login kopieren

Das Ereignis onWorkerStart und onRequest Rückrufmethoden sind in der Erweiterung definiert (Bitte nicht ersetzen, wenn Sie damit nicht vertraut sind). Wenn Sie die Ereignisrückrufmethode von swoole anpassen müssen, können Sie die Abschlussdefinition in der Konfigurationsdatei verwenden.

<?phpreturn [
    &#39;host&#39;          => &#39;tp5.com&#39;,
    &#39;port&#39;          =>   9508,
    &#39;worker_num&#39;    =>   4,
    &#39;max_request&#39;   =>   1000,
    &#39;WorkerStop&#39;    =>   function($server, $worker_id){
        // 添加你的代码
    },];
Nach dem Login kopieren

Oder fügen Sie

direkt in der Konfigurationsdatei hinzu, um Swoole als Server zu verwenden. Server


kann das direkte Starten eines Swoole-Servers unterstützen (erfordert 2.0.0). 9 + Version)

php think swoole:server

startet einen Websocket-Dienst bei 0.0.0.0:9508.

Wenn Sie benutzerdefinierte Parameter benötigen, können Sie diese in config/swoole_server.php konfigurieren, einschließlich:

Konfigurationsparameter


Beschreibung
TypDiensttyp
hostListening-Adresse
portListening-Port
ModusAusführungsmodus
socketSocket-Typ

und unterstützt alle Parameter von swoole.

Es unterstützt auch die Verwendung von Abschlüssen zum Definieren zugehöriger Ereignisrückrufe.

return [
    // 扩展自身配置
    &#39;host&#39;         => &#39;0.0.0.0&#39;, // 监听地址
    &#39;port&#39;         => 9501, // 监听端口
    &#39;type&#39;         => &#39;socket&#39;, // 服务类型 支持 socket http server
    &#39;mode&#39;         => SWOOLE_PROCESS,
    &#39;socket_type&#39;  => SWOOLE_SOCK_TCP,
 
    // 可以支持swoole的所有配置参数
    &#39;daemonize&#39;    => false,
 
    // 事件回调定义
    &#39;onOpen&#39;       => function ($server, $request) {
        echo "server: handshake success with fd{$request->fd}\n";
    },
 
    &#39;onMessage&#39;    => function ($server, $frame) {
        echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
        $server->push($frame->fd, "this is server");
    },
 
    &#39;onRequest&#39;    => function ($request, $response) {
        $response->end("<h1>Hello Swoole. #" . rand(1000, 9999) . "</h1>");
    },
 
    &#39;onClose&#39;      => function ($ser, $fd) {
        echo "client {$fd} closed\n";
    },];
Nach dem Login kopieren

Sie können auch eine benutzerdefinierte Serviceklasse verwenden
配置参数
描述
type服务类型
host监听地址
port监听端口
mode运行模式
socketSocket type
<?php
namespace app\http;use think\swoole\Server;class Swoole extends Server{
    protected $host = &#39;127.0.0.1&#39;;
    protected $port = 9502;
    protected $option = [ 
        &#39;worker_num&#39;=> 4,
        &#39;daemonize&#39; => true,
        &#39;backlog&#39;   => 128
    ];
 
    public function onReceive($server, $fd, $from_id, $data)
    {
        $server->send($fd, &#39;Swoole: &#39;.$data);
    }}
Nach dem Login kopieren

Unterstützt alle Callback-Methodendefinitionen von swoole (Callback-Methoden müssen öffentliche Typen sein)
Wenn das serverType-Attribut als Socket oder http definiert ist , swoole wird unterstützt swoole_websocket_server und swoole_http_server

Dann fügen Sie Konfigurationsparameter in swoole_server.php hinzu:

return [
    &#39;swoole_class&#39;  =>   &#39;app\http\Swoole&#39;,];
Nach dem Login kopieren

Nach der Definition dieses Parameters sind andere Konfigurationsparameter nicht mehr gültig.

Starten Sie den Server über die Befehlszeile

php think swoole:server
Nach dem Login kopieren

Unterstützt Neuladen|Neustart|Stopp|Statusvorgang

php think swoole:server reload
Nach dem Login kopieren
Empfohlenes Tutorial: "

PHP-Video-Tutorial

"

Das obige ist der detaillierte Inhalt vonKlicken Sie in Thinkphp direkt auf Swoole. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:liqingbo.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage