Workerman est un framework de service de socket PHP open source et hautes performances développé uniquement en PHP.
En fait, Workerman est similaire à une version PHP de nginx. Le noyau est également multi-processus + Epoll + IO non bloquant. Chaque processus Workerman peut maintenir des dizaines de milliers de connexions simultanées. Parce qu'il réside en mémoire, il ne repose pas sur des conteneurs tels qu'Apache, nginx et php-fpm et offre des performances ultra élevées. (Apprentissage recommandé : tutoriel Workerman )
Prend en charge TCP, UDP, UNIXSOCKET en même temps, prend en charge les connexions longues, prend en charge Websocket, HTTP, WSS, HTTPS et d'autres protocoles de communication et divers protocoles de personnalisations. Il comporte de nombreux composants hautes performances tels que des minuteries, des clients socket asynchrones, Mysql asynchrone, Redis asynchrone, HTTP asynchrone et des files d'attente de messages asynchrones.
1. Développement PHP pur
Les applications développées à l'aide de WorkerMan peuvent s'exécuter indépendamment sans dépendre de conteneurs tels que php-fpm, apache et nginx. Cela rend très pratique pour les développeurs PHP le développement, le déploiement et le débogage d’applications.
2. Prise en charge du multi-processus PHP
Afin de faire jouer pleinement les performances du multi-CPU du serveur, WorkerMan prend en charge le multi-processus et le multi-tâches. par défaut. WorkerMan démarre un processus principal et plusieurs sous-processus pour fournir des services au monde extérieur. Le processus principal est responsable de la surveillance des sous-processus. Les sous-processus surveillent indépendamment les connexions réseau et reçoivent et traitent les données. , WorkerMan est plus stable et efficace.
3. Prise en charge de TCP, UDP
WorkerMan prend en charge les deux protocoles de couche de transport TCP et UDP. Il vous suffit de modifier un attribut pour modifier le protocole de couche de transport, aucune affaire. le code doit être modifié.
4. Prise en charge des connexions longues
Souvent, les applications PHP doivent maintenir de longues connexions avec les clients, tels que les salons de discussion, les jeux, etc., mais les conteneurs PHP traditionnels ( apache, nginx, php-fpm) sont difficiles à réaliser.
En utilisant WorkerMan, tant que l'activité côté serveur n'appelle pas activement l'interface de connexion étroite, vous pouvez utiliser des connexions longues PHP. Un seul processus WorkerMan peut prendre en charge des dizaines de milliers de connexions simultanées, et plusieurs processus peuvent prendre en charge des centaines de milliers, voire des millions de connexions simultanées.
5. Prend en charge divers protocoles de couche d'application
L'interface WorkerMan prend en charge divers protocoles de couche d'application, y compris les protocoles personnalisés. Changer le protocole dans WorkerMan est également très simple. Il suffit de configurer un champ et le protocole est automatiquement commuté sans aucune modification du code métier. Vous pouvez même ouvrir plusieurs ports avec différents protocoles pour répondre aux différents besoins des clients.
6. Prise en charge de la simultanéité élevée
WorkerMan prend en charge la bibliothèque d'interrogation d'événements Libevent (l'extension Libevent doit être installée. Les performances d'utilisation de Libevent sont très excellentes lors de l'utilisation d'une simultanéité élevée). S'il n'est pas installé, Libevent utilise les appels système intégrés à PHP liés à Select, et ses performances sont également très puissantes.
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!