Maison  >  Article  >  cadre php  >  Plusieurs problèmes que les développeurs de travailleurs doivent connaître

Plusieurs problèmes que les développeurs de travailleurs doivent connaître

尚
avant
2019-11-26 15:44:565172parcourir

La colonne tutorielle suivante de workerman vous présentera plusieurs problèmes que les développeurs de Workerman doivent connaître. J'espère qu'elle sera utile aux amis dans le besoin !

Plusieurs problèmes que les développeurs de travailleurs doivent connaître

1. Workerman ne dépend pas d'Apache ou de nginx

workerman lui-même est déjà un conteneur similaire à Apache/ nginx. Tant que l'environnement PHP est correct, Workman peut s'exécuter.

2. Workerman est démarré à partir de la ligne de commande

La méthode de démarrage est similaire à Apache en utilisant la commande (workerman ne peut pas être utilisé dans les espaces Web généraux). L'interface de démarrage est similaire à la suivante

Plusieurs problèmes que les développeurs de travailleurs doivent connaître

3. Un battement de cœur doit être ajouté pour une connexion longue

Un battement de cœur doit être ajouté pour une connexion longue, et un battement de cœur doit être ajouté pour une connexion longue. Les connexions longues doivent ajouter des battements de cœur et dire des choses importantes trois fois.

Une longue connexion sans communication pendant une longue période sera définitivement bloquée par le pare-feu et déconnectée. L'application de connexion longue durée sans battement de coeur n'attend que que le patron vous mette KO.

4. Les protocoles client et serveur doivent correspondre pour communiquer

C'est un problème très courant chez les développeurs. Par exemple, si le client utilise le protocole websocket, le serveur doit également utiliser le protocole websocket (server new Worker('websocket://0.0.0.0...')) pour pouvoir se connecter et communiquer.

N'essayez pas d'accéder au port du protocole websocket dans la barre d'adresse du navigateur, et n'essayez pas d'utiliser le protocole websocket pour accéder au port du protocole TCP nu. Le protocole doit correspondre.

Le principe ici est similaire à celui-ci : si vous souhaitez communiquer avec des Britanniques, utilisez l'anglais. Si vous souhaitez communiquer avec des Japonais, utilisez le japonais. La langue ici est similaire à celle de l'accord de communication. Les deux parties (client et serveur) doivent utiliser la même langue pour communiquer, sinon la communication ne sera pas possible.

5. Raisons possibles de l'échec de la connexion

Un problème très courant lorsque vous commencez à utiliser Workerman est que le client ne parvient pas à se connecter au serveur. Les raisons sont généralement les suivantes :

1. Le pare-feu du serveur (y compris le groupe de sécurité du serveur cloud) bloque la connexion (50 % de chances que cela se produise)

2. et le serveur sont incohérents (30 % de chance)

3. L'adresse IP ou le port est mal écrit (15 % de chance)

4 Le serveur n'est pas démarré

6. N'utilisez pas exit die L'exécution de l'instruction sleep

de l'instruction exit die entraînera la fermeture du processus et l'affichage de l'erreur WORKER EXIT UNEXPECTED. Bien entendu, à la fin du processus, un nouveau processus sera immédiatement redémarré pour continuer le service. Si vous devez revenir, vous pouvez appeler le retour. L'instruction sleep entraînera la mise en veille du processus. Aucune activité ne sera effectuée pendant le processus de mise en veille et le framework cessera également de fonctionner, ce qui empêchera toutes les demandes client du processus d'être traitées.

7. Ne pas avoir de boucle infinie dans le code métier

Ne pas avoir de boucle infinie dans le code métier, sinon le contrôle ne sera pas rendu au framework de travail, ce qui entraîne l'incapacité de recevoir le traitement d'autres messages client.

8. Redémarrez lors de la modification du code

Workerman est un framework résidant en mémoire Lorsque vous modifiez le code, vous devez redémarrer Workerman pour voir l'effet du nouveau. code.

9. Il est recommandé d'utiliser le framework GatewayWorker pour les applications de connexion à long terme

De nombreux développeurs utilisent Workerman pour développer des applications de connexion à long terme, telles que la messagerie instantanée. , Internet des objets, etc., applications de connexion à long terme Il est recommandé d'utiliser directement le framework GatewayWorker, qui est spécialement encapsulé sur la base de Workerman pour le rendre plus simple et plus facile à utiliser en tant que backend d'application à connexion longue.

10. Prise en charge d'une concurrence plus élevée

Si le nombre de connexions professionnelles simultanées dépasse 1 000 en ligne en même temps, assurez-vous d'optimiser le noyau Linux et d'installer l'extension d'événement. ou une extension Libevent.

Pour plus de tutoriels sur les ouvriers, veuillez faire attention à la colonne Tutoriel sur les ouvriers.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer