🎜>
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. InstallationInstallieren 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.*使用
Swoole unterstützt derzeit kein Windows
Verwenden Sie Swoole als HttpServer
Starten Sie den Server direkt über die Befehlszeile. php think swoole
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
verwenden oder
'daemonize' => true
php think swoole [start|stop|reload|restart]
http://127.0.0.1:9501
swoole.php im Anwendungskonfigurationsverzeichnis hinzufügen und dann Folgendes festlegen:
<?phpreturn [ 'host' => 'tp5.com', 'port' => 9508,]; 可以支持Swoole自身的配置参数设置,例如: <?phpreturn [ 'host' => 'tp5.com', 'port' => 9508, 'worker_num' => 4, 'max_request' => 1000,];
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 [ 'host' => 'tp5.com', 'port' => 9508, 'worker_num' => 4, 'max_request' => 1000, 'WorkerStop' => function($server, $worker_id){ // 添加你的代码 },];
Oder fügen Sie
direkt in der Konfigurationsdatei hinzu, um Swoole als Server zu verwenden. Serverphp 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 |
Typ | Diensttyp |
host | Listening-Adresse |
port | Listening-Port |
Modus | Ausführungsmodus |
socket | Socket-Typ |
und unterstützt alle Parameter von swoole.
Es unterstützt auch die Verwendung von Abschlüssen zum Definieren zugehöriger Ereignisrückrufe.return [ // 扩展自身配置 'host' => '0.0.0.0', // 监听地址 'port' => 9501, // 监听端口 'type' => 'socket', // 服务类型 支持 socket http server 'mode' => SWOOLE_PROCESS, 'socket_type' => SWOOLE_SOCK_TCP, // 可以支持swoole的所有配置参数 'daemonize' => false, // 事件回调定义 'onOpen' => function ($server, $request) { echo "server: handshake success with fd{$request->fd}\n"; }, 'onMessage' => function ($server, $frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $server->push($frame->fd, "this is server"); }, 'onRequest' => function ($request, $response) { $response->end("<h1>Hello Swoole. #" . rand(1000, 9999) . "</h1>"); }, 'onClose' => function ($ser, $fd) { echo "client {$fd} closed\n"; },];
配置参数 | 描述 |
type | 服务类型 |
host | 监听地址 |
port | 监听端口 |
mode | 运行模式 |
socket | Socket type |
<?php namespace app\http;use think\swoole\Server;class Swoole extends Server{ protected $host = '127.0.0.1'; protected $port = 9502; protected $option = [ 'worker_num'=> 4, 'daemonize' => true, 'backlog' => 128 ]; public function onReceive($server, $fd, $from_id, $data) { $server->send($fd, 'Swoole: '.$data); }}
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 [ 'swoole_class' => 'app\http\Swoole',];
Nach der Definition dieses Parameters sind andere Konfigurationsparameter nicht mehr gültig.
php think swoole:server
php think swoole:server reload
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!