thinkphp没有想laravel拥有broadcast的功能,那么需要做实时计算运用到的推送功能就需要运用插件workerman
workerman就是类似一个信号收发站,例如某客户操作之后需要服务端根据其行为向其他用户单向推送其影响的
首先,客户端创建websocket(或者在已建立websocket基础之上)
这一步其实就是创建客户端与workerman的通信,这时候workerman会给客户端发送对应client_id
然后,某客户发送请求
这一步需要客户端向workerman发送相应指令
再然后,workerman向其他客户推送特定指令
最后,收到指令的客户根据指令再向服务器发送请求或者做其他的提示操作
tp6可以用composer加载workerman的扩展
composer require topthink/think-worker
在config目录下会新增三个文件gateway_worker.php,worker.php,worker_server.php
其中worker_server.php文件中的worker_class是设置workerman的入口文件的
一定要继承think\worker\Server类,这样才能调用onWorkerStart,onWorkerReload,onConnect,onMessage,onClose,onError方法
根据需要重写方法~~