Maison > développement back-end > tutoriel php > Le principe et l'explication détaillée de la transmission en temps réel par PHP des messages système au client

Le principe et l'explication détaillée de la transmission en temps réel par PHP des messages système au client

藏色散人
Libérer: 2023-04-08 09:46:01
avant
2845 Les gens l'ont consulté

Le principe et l'explication détaillée de la transmission en temps réel par PHP des messages système au client

Dans notre processus de développement actuel, certaines données doivent être obtenues en temps réel

Par exemple, les informations de commande dans le système ERP, l'approbation du processus dans le système OA ; , etc. doivent être traités en temps opportun, alors nous ne pouvons plus utiliser le protocole http, bien sûr, nous pouvons également utiliser le mécanisme d'interrogation ;

Mais la plupart des demandes d'interrogation sont inutiles, gaspillant la bande passante et les ressources du serveur.

À l'heure actuelle, nous devons utiliser le protocole websocket pour répondre à ce besoin commercial

Préparation :

Installation Extension ; PHP-swoole

Publiez le code directement ;

<?php
new class
{
    private $_serv = null;
    public function __construct()
    {
        $this->_serv = new swoole_websocket_server(&#39;0.0.0.0&#39;, 6552);
        $this->_serv->set(array(
            &#39;worker_num&#39;      => 2,
            &#39;dispatch_mode&#39;   => 3,
        &#39;log_file&#39; => &#39;swoole.log&#39;,
        ));
  //增加个监听端口
    $udpworker =  $this->_serv->listen("127.0.0.1", 6553, SWOOLE_SOCK_UDP);
    $udpworker->on(&#39;Packet&#39;, function ($serv, $data, $addr) {
            $data = json_decode($data, true);
            if(!empty($data)){
                //你的业务逻辑
            }
        });
        $this->_serv->on(&#39;open&#39;, array($this, &#39;onStart&#39;));
        $this->_serv->on(&#39;message&#39;, array($this, &#39;onMessage&#39;));
        $this->_serv->on(&#39;close&#39;, array($this, &#39;onClose&#39;));
        $this->_serv->start();
    }
   
    public function onStart($serv, $request)
    {
        echo "server: connect success with fd {$request->fd}\n";
    }
    //format:&#39;{"school_class_id":"1","school_id":"2"}&#39;
    public function onMessage($serv, $frame)
    {
    /**start*你的业务逻辑***/
    }
    public function onClose($serv, $fd)
    {
        echo "client {$fd} closed\n";
    }
}
?>
Copier après la connexion

Principe :

Créez d'abord un objet serveur websocket et écoutez sur le port 0.0 .0.0:6552, puis utilisez l'objet de service pour écouter le port UDP 6553. Les messages client sont envoyés à l'interface 6553 puis envoyés à l'utilisateur via le port 6552.

Pour plus de connaissances sur php, veuillez visiter le

tutoriel php !

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!

Étiquettes associées:
php
source:cnblogs.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal