php后端及时推送消息给客户端
原理:
1、建立一个websocket worker,用来维持客户端长连接
2、websocket worker内部建立一个text worker
3、websocket worker 与 text worker是同一个进程,可以方便的共享客户端连接
4、某个独立的php后台系统通过text协议与text worker通讯
5、text worker操作websocket连接完成数据推送
代码及步骤
push.php
use workerman\worker;
require_once './workerman/autoloader.php';
// 初始化一个worker容器,监听1234端口
$worker = new worker('websocket://0.0.0.0:1234');//
/*
* 注意这里进程数必须设置为1,否则会报端口占用错误
* (php 7可以设置进程数大于1,前提是$inner_text_worker->reuseport=true)
*/
$worker->count = 1;
// worker进程启动后创建一个text worker以便打开一个内部通讯端口
$worker->onworkerstart = function($worker)
{
// 开启一个内部端口,方便内部系统推送数据,text协议格式 文本+换行符
$inner_text_worker = new worker('text://0.0