Heim > PHP-Framework > Denken Sie an PHP > Das WebSocket-Event-Abonnement von Think-Swoole

Das WebSocket-Event-Abonnement von Think-Swoole

Freigeben: 2020-10-26 14:15:12
nach vorne
2432 Leute haben es durchsucht

Wenn Sie im vorherigen Beispiel die vorherige Methode zum Abhören von Ereignissen befolgen, muss der Server für jedes Szenenereignis auf dem Client jedes entsprechende Ereignis erstellen. Wenn zu viele Ereignisse vorhanden sind, befinden sich viele Dateien in der App/. Listener-Verzeichnis (Tatsächlich ist es kein schlechtes Phänomen). Das Ereignisabonnement besteht darin, dieses Problem zu lösen und alle Ereignisse in eine Datei zu schreiben.

Im Folgenden wird ein Ereignisabonnement zur Verarbeitung von Ereignissen verwendet.

Zuerst müssen Sie die Ereignisse, die zuvor in app/event.php abgehört wurden, auskommentieren und dann ein Abhörereignis erstellen: php think make:listener SubTest.

Dann konfigurieren Sie die neu erstellte Listening-Datei in Websocket => subscribe in der Konfiguration config/swoole.php:

'websocket'  => [
        .
        .
        .
        'listen'        => [],
        'subscribe'     => [
           \app\listener\SubTest::class
        ],
],
Nach dem Login kopieren

Definieren Sie die Ereignisse, die überwacht werden müssen, in 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;]);
    }
}
Nach dem Login kopieren

Nennen Sie die Methode von Zuhörereignisse Spezifikation: On+Event-Szenenidentifikation (Buckelbenennung)

Getestet mit der vorherigen Front-End-Seite, alles ist normal.

Das obige ist der detaillierte Inhalt vonDas WebSocket-Event-Abonnement von Think-Swoole. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:阿dai哥
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage