Maison > cadre php > PensezPHP > Abonnement à l'événement WebSocket de Think-Swoole

Abonnement à l'événement WebSocket de Think-Swoole

Libérer: 2020-10-26 14:15:12
avant
2432 Les gens l'ont consulté

Dans l'exemple précédent, si vous suivez la méthode d'écoute d'événements précédente, le serveur doit créer chaque événement correspondant pour chaque événement de scène sur le client. S'il y a trop d'événements, il y en aura beaucoup dans l'application. /listener file (en fait, ce n'est pas un mauvais phénomène), l'abonnement aux événements consiste à résoudre ce problème et à écrire tous les événements dans un fichier.

Ce qui suit utilise l'abonnement aux événements pour traiter les événements

Tout d'abord, vous devez commenter les événements précédemment écoutés dans app/event.php, puis créer un événement d'écoute : php think make:listener Sous-test.

Configurez ensuite le fichier d'écoute nouvellement créé dans websocket => abonnez-vous dans la configuration config/swoole.php :

'websocket'  => [
        .
        .
        .
        'listen'        => [],
        'subscribe'     => [
           \app\listener\SubTest::class
        ],
],
Copier après la connexion

Définissez les événements qui doivent être écoutés dans app/listener/SubTest. php :

<?php
declare (strict_types = 1);
namespace app\listener;
class SubTest
{
    protected $websocket = null;
    public function __construct()
{
        $this -> websocket = app(&#39;\think\swoole\Websocket&#39;);
    }
    //连接事件
    public function onConnect()
{
        $this -> websocket -> emit(&#39;sendfd&#39;,$this -> websocket -> getSender());
    }
    //加入房间
    public function onJoin($event)
{
        $this -> websocket -> join($event[&#39;room&#39;]);
        $this -> websocket -> emit(&#39;joincallback&#39;,&#39;加入房间成功&#39;);
    }
    public function onRoomTest($event)
{
        $this -> websocket -> to($event[&#39;room&#39;]) -> emit(&#39;roomtestcallback&#39;,$event[&#39;message&#39;]);
    }
}
Copier après la connexion

La convention de nommage de la méthode d'écoute des événements : on+event scene identifier (hump naming)

Testé avec la page front-end précédente, tout est normal.

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:
source:阿dai哥
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