SwooleServer est un modèle piloté par les événements, et tout le code de logique métier doit être écrit dans la fonction de rappel d'événement. Lorsqu'un événement réseau spécifique se produit, la couche inférieure rappelle activement la fonction PHP spécifiée. Au total, 13 types d'événements sont pris en charge. (Apprentissage recommandé : tutoriel vidéo swoole )
Séquence d'exécution des événements
Tous les rappels d'événements se produisent après $server->start
Le dernier événement à la fin du programme d'arrêt du serveur est onShutdown
Une fois le serveur démarré avec succès, onStart/onManagerStart/onWorkerStart sera exécuté simultanément dans différents processus
onReceive/onConnect/onClose Triggered dans le processus Worker
OnWorkerStart/onWorkerStop sera appelé une fois lorsque le processus Worker/Task démarre/se termine
L'événement onTask ne se produit que dans le processus de tâche
L'événement onFinish se produit uniquement dans le travailleur L'ordre d'exécution des 3 événements
onStart/onManagerStart/onWorkerStart se produit dans le processus est incertain
Mode coroutine
La version Swoole2/4 prend en charge les coroutines. Après avoir utilisé les coroutines, les fonctions de rappel d'événement seront exécutées simultanément. Coroutine est une implémentation de thread en mode utilisateur qui n'a aucune consommation de planification supplémentaire et occupe uniquement de la mémoire.
L'utilisation du mode coroutine peut être comprise comme "chaque fonction de rappel d'événement créera un nouveau thread pour l'exécution. Une fois la fonction de rappel d'événement exécutée, le thread se fermera."
Si vous souhaitez fermer la coroutine, vous pouvez définir :
$server->set(["enable_coroutine" => false, ]);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!