小编给大家分享一下Think-Swoole之WebSocket事件订阅的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
成都网络公司-成都网站建设公司创新互联十多年经验成就非凡,专业从事成都网站制作、成都做网站、外贸营销网站建设,成都网页设计,成都网页制作,软文发稿,1元广告等。十多年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:18982081108,我们期待您的来电!通过前面的实例中,如果按照之前的事件监听方式,客户端的每个场景事件,服务端都需要创建每个对应的事件,如果事件太多, 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 中定义需要监听的事件:
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事件订阅的示例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!