当前位置: 首页 > 后端技术 > PHP

TP5集成WorkerMan和GatewayWorker

时间:2023-03-30 00:27:08 PHP

TP5集成GatewayWorkerWindows版安装a)使用composercreate-projecttopthink/thinktestTG安装thinkphp5.b)进入thinkphp5的目录,这里是testTG,使用composerrequireworkerman/gateway-worker-for-win安装Windows版本的网关。c)到官网下载Windows版的gateway-worker,里面有demo。http://www.workerman.net/downloadd)将下载的压缩包解压,将Applications/Yourapp中的所有文件复制到thinkphp5目录application的任意文件夹中,在此命名为push。e)将解压后文件夹中的start_for_win.bat复制到thinkphp5的根目录下,即application的同级目录。f)右击start_for_win.bat,点击编辑,把里面的目录改成自己的目录,这里改成phpapplication\push\start_register.phpapplication\push\start_gateway.phpapplication\push\start_businessworker.phpPauseg)保存并退出。双击运行。Linux版本安装a)使用composercreate-projecttopthink/thinktestTG安装thinkphp5。b)进入thinkphp5目录,这里是testTG,使用composerrequireworkerman/gateway-worker安装linux版gateway。c)到官网下载gateway-worker的Linux版本,里面有demo。http://www.workerman.net/downloadd)将下载的压缩包解压,将Applications/Yourapp中的所有文件复制到thinkphp5目录application的任意文件夹中,在此命名为push。e)将解压后文件夹中的start.php复制到thinkphp5的根目录下,即application的同级目录。f)将start.php文件中forearch循环最后一部分括号中的路径修改为自己的正确路径。在命令行中使用phpstart.phpstart启动它。TP5集成WrokerManWindows版安装a)使用composercreate-projecttopthink/thinktestTW安装thinkphp5。b)进入thinkphp5的根目录,即testTW。先使用composerrequiretopthink/think-worker,然后使用composerrequireworkerman/workerman-for-win安装workerman。安装成功后删除vendor\workerman\workerman。c)在thinkphp5根目录(即application同级目录)下创建server.php,编辑内容。send('我收到你的信息');}/***连接建立时触发的回调函数*@param$connection*/publicfunctiononConnect($connection){}/***连接断开时触发的回调函数*@param$connection*/publicfunctiononClose($connection){}/***当客户端连接出错时触发*@param$connection*@param$code*@param$msg*/publicfunctiononError($connection,$code,$msg){echo"错误$code$msg\n";}/***每个进程启动*@param$worker*/publicfunctiononWorkerStart($worker){}}e)在命令行下运行,启动监控服务phpserver.phpf)在任意位置新建一个html文件。内容是:g)保存,用浏览器打开,可以看到链接成功。Linux版安装a)只需要执行Windows版安装步骤b)中的composer命令:composerrequiretopthink/think-worker。就是这样,其余步骤不变。只需使用GatewayWorkerclassPush{publicfunctionhelloAction(){$uid=$_GET['uid'];会话('uid',$uid);$视图=新视图;返回$view->fetch();}publicfunctionBindClientIdAction(){$client_id=$_POST['client_id'];//设置GatewayWorker服务的注册服务ip和端口,请根据实际情况修改为实际值Gateway::$registerAddress='127.0.0.1:1238';$bindUid=session('uid');//假设用户已经登录,用户uid和groupid在session中//Client_id和uid绑定Gateway::bindUid($client_id,$bindUid);//加入一个群组(可以多次调用加入多个群组)//Gateway::joinGroup($client_id,$group_id);}publicfunctionAjaxSendMessageAction(){$message=$_POST['message'];//设置GatewayWorker服务的注册服务ip和端口,请根据实际情况修改为实际值Gateway::$registerAddress='127.0.0.1:1238';网关::sendToAll($消息);}}