Maison  >  Article  >  développement back-end  >  PHP peut-il faire l’Internet des objets ?

PHP peut-il faire l’Internet des objets ?

(*-*)浩
(*-*)浩original
2019-10-19 10:07:516829parcourir

PHP n'est-il pas adapté au serveur IoT ?

PHP peut-il faire l’Internet des objets ?

Dans la pensée traditionnelle, les gens vous disent souvent que php n'est pas adapté aux serveurs IoT et vous demandent de passer à java ou node, allez et. d'autres langages, oui, oui, PHP au sens traditionnel est en effet difficile de créer un serveur IoT car il est tellement boiteux. Bien sûr, cela ne veut pas dire que cela ne peut pas être fait complètement . (Apprentissage recommandé : Tutoriel vidéo PHP)

Par exemple, lorsque vous souhaitez implémenter un serveur TCP, vous devrez peut-être écrire du code avec le principe suivant :

for ($i = 0;$i <= 1;$i++){
    $pid = pcntl_fork();
    if($pid){
        if($i == 0){
            $server = stream_socket_server("tcp://127.0.0.1:9501", $errno, $errstr, STREAM_SERVER_BIND);
        }else if($i == 1){
            $tickTime = time()+3600;
            while (1){
                usleep(1);
                if($tickTime == time()){
                    //do my tick func
                }
            }
        }
    }}

La signification du code ci-dessus équivaut à créer un serveur TCP dans un processus et à effectuer une détection du temps dans une boucle infinie dans un autre processus, réalisant ainsi la logique du minuteur.

Cela a l'air vraiment nul, et pour PHPer qui a généralement une base de programmation faible, c'est vraiment difficile à maintenir. Bien sûr, à l'heure actuelle, certaines personnes diront : n'existe-t-il pas Workerman ? Oui, il existe effectivement Workerman est un framework PHP multi-processus qui encapsule parfaitement les principes de code ci-dessus et vous aide donc à vous concentrer sur la mise en œuvre de la logique du code. , on dit que PHP Faire de l'Internet des objets de temps en temps est en fait une erreur.

Bien sûr, à l'heure actuelle, certaines personnes peuvent dire que le langage Go a des coroutines. Lorsque vous utilisez Workerman pour bloquer les appels à la base de données, l'efficacité sera très mauvaise et il sera difficile d'atteindre une concurrence élevée. C'est correct. Mais en fait, nous pouvons utiliser autant que possible plusieurs processus pour combler cette lacune, c'est-à-dire une machine à tas. Bien sûr, si vous voulez vraiment dépenser chaque centime, cela n'a pas d'importance. Pour le moment, nous pouvons proposer notre arme tueuse, qui est la coroutine de Swoole4.x.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn