热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkSwoole之WebSocket事件订阅

php框架|ThinkPHPThink-Swoole,WebSocketphp框架-ThinkPHP通过前面的实例中,如果按照之前的事件监听方式,客户端的每个场景事件,服务端都需要

php框架|ThinkPHPThink-Swoole之WebSocket 事件订阅
Think-Swoole,WebSocket
php框架-ThinkPHP
通过前面的实例中,如果按照之前的事件监听方式,客户端的每个场景事件,服务端都需要创建每个对应的事件,如果事件太多, app/listener 目录下将会有很多的文件(其实也不算什么坏现象),事件订阅就是为了解决这一问题,把所有的事件都写在一个文件中。
广告消耗查询源码源码,ubuntu 登陆记录,r语言爬虫 影评,php 5.4.36,seo展现次数lzw
下面用事件订阅的方式处理事件
旅游资讯网站源码,ubuntu如何看gpu,tomcat端口号8081,python 爬虫 心得,php面试书籍,鞍山搜索引擎优化seo价格lzw
首先需要把之前在 app/event.php 监听的事件给注释掉,然后创建一个监听事件:php think make:listener SubTest 。
论坛登陆模板源码,vscode人工智能,用ubuntu很卡,404原因 tomcat,sqlite数据表循环,中间有红斑的爬虫有哪些,php菜刀一句话,温州网站seo电话,wordpress网站移植,鼠标滑轮 网页,angularjs admin 模板lzw
然后在 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+事件场景标识(驼峰命名)

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


推荐阅读
author-avatar
月逝彼山
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有