Think-Swoole的WebSocket事件订阅如何改写为支持长尾词的?

2026-04-18 09:252阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计493个文字,预计阅读时间需要2分钟。

Think-Swoole的WebSocket事件订阅如何改写为支持长尾词的?

通过实例分析,若采用按照事件监听方式,客户端的每个场景事件,服务端都需要创建对应的事件。若事件过多,app/listener 目录下将出现大量文件。实际上,这也算不上什么问题。

通过前面的实例中,如果按照之前的事件监听方式,客户端的每个场景事件,服务端都需要创建每个对应的事件,如果事件太多, app/listener 目录下将会有很多的文件(其实也不算什么坏现象),事件订阅就是为了解决这一问题,把所有的事件都写在一个文件中。

下面用事件订阅的方式处理事件

首先需要把之前在 app/event.php 监听的事件给注释掉,然后创建一个监听事件:php think make:listener SubTest 。

然后在 config/swoole.php 配置中的 websocket => subscribe 配置刚创建的监听文件:

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

在 app/listener/SubTest.php 中定义需要监听的事件:

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

监听事件的方法命名规范:on+事件场景标识(驼峰命名)

用之前的前端页面进行测试,一切正常。

以上就是Think-Swoole之WebSocket 事件订阅的详细内容,更多请关注自由互联其它相关文章!

Think-Swoole的WebSocket事件订阅如何改写为支持长尾词的?

本文共计493个文字,预计阅读时间需要2分钟。

Think-Swoole的WebSocket事件订阅如何改写为支持长尾词的?

通过实例分析,若采用按照事件监听方式,客户端的每个场景事件,服务端都需要创建对应的事件。若事件过多,app/listener 目录下将出现大量文件。实际上,这也算不上什么问题。

通过前面的实例中,如果按照之前的事件监听方式,客户端的每个场景事件,服务端都需要创建每个对应的事件,如果事件太多, app/listener 目录下将会有很多的文件(其实也不算什么坏现象),事件订阅就是为了解决这一问题,把所有的事件都写在一个文件中。

下面用事件订阅的方式处理事件

首先需要把之前在 app/event.php 监听的事件给注释掉,然后创建一个监听事件:php think make:listener SubTest 。

然后在 config/swoole.php 配置中的 websocket => subscribe 配置刚创建的监听文件:

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

在 app/listener/SubTest.php 中定义需要监听的事件:

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

监听事件的方法命名规范:on+事件场景标识(驼峰命名)

用之前的前端页面进行测试,一切正常。

以上就是Think-Swoole之WebSocket 事件订阅的详细内容,更多请关注自由互联其它相关文章!

Think-Swoole的WebSocket事件订阅如何改写为支持长尾词的?