tp5框架整合gatewayworker,gatewayclient推送数据进行网页数据交互

官方文档地址:http://doc2.workerman.net/work-with-other-frameworks.html

看着文档一步一步做是没问题的,但是官方文档真正的打通任督二脉还得理解一下其中的原理

我的上一篇博客详细的介绍了gatewayworker的安装方式,以及我遇到的各种坑,填坑的过程真是刺激,哈哈哈

1.首先:安装了gatewayworker的直接安装gatewayclient,我是通过composer安装的,真的很是方便

composer安装命令:进入到项目的根目录,输入下面的命令,回车,等待下载。

composer require workerman/gatewayclient

 2.其次:安装完成以后,在服务器中启动start.php

进入项目的根目录输入如下命令:start.php &    ( 后面加入取地址符,表示在后台运行),或者还可以输入  start.php -d (守护进程)

3.接着:启动后,按照官方文档编辑后台服务代码:这个是我将两个方法整合放在了一个类文件里面

 success('绑定成功!','',$user_num);
    }

   /*发送数据,注意,这里是要转成json字符串,才可以发送成功的,不转是发送不成功的哦*/
    public function sendmessage(){
        //获取数据
        $bigscreen = new Bigscreengetdata();
        $data = $bigscreen -> firstgetdata();
        $message = json_encode($data);
        //发送数据
        Gateway::sendToAll($message);
//        // 向任意uid的网站页面发送数据
//        Gateway::sendToUid($uid, $message);
//        // 向任意群组的网站页面发送数据
//        Gateway::sendToGroup($group, $message);
    }

}

4.紧接着:服务文件编写好以后,编写前端HTML以及js代码

要注意的是:前端代码中实例化WebSocket时,用的是ws,后台startgateway.php中的协议应该是

websocket,而不是tcp,前后端要一致,这样才能连通。

tp5框架整合gatewayworker,gatewayclient推送数据进行网页数据交互_第1张图片

tp5框架整合gatewayworker,gatewayclient推送数据进行网页数据交互_第2张图片

 下面是前端代码,可以直接复制的




    
    WebSocket客户2


5.接着:代码写好后,上传服务器,通过url访问页面,要是访问时连接不了,看看阿里云的实例,安全组中有没有对你要的端口开放,要是没有开放,将端口号加入安全组,接着访问,谷歌浏览器F12,看看,出现如下,说明连接成功

tp5框架整合gatewayworker,gatewayclient推送数据进行网页数据交互_第3张图片

6.连接成功后,利用gatewayclient连接gatewayworker,主动推送数据给前端页面。

再具体点就是浏览器访问那会写好的server类文件中的发送数据方法,将数推送到前端页面。

7.访问推送成功后,写定时任务,让变成自动推送的,这个方法有很多,具体看自己的业务需求,我们的做的是大屏展示,需要几秒钟更新一次,所以我选择了写执行脚本,脚本如下:

#! /bin/sh

while :
do
curl http://********/Gatewayserver/sendmessage  //写上自己的方法访问路径

sleep 5
done
 

8.编辑好脚本后,将权限改为可执行权限,命令执行这个文件,就会实现每隔5秒推送数据至前台页面

tp5框架整合gatewayworker,gatewayclient推送数据进行网页数据交互_第4张图片

从上图中可以看出,每次推送的数据都不一样,将推送过来的数据显示在页面上,好了,截至现在为止,这个主动推送功能已经完成。

为了避免服务器重启,将下面的命令加入开机启动文件中,以后就后顾无忧啦 !

nohup /home/wwwroot/highway/websocket1.sh >/dev/null 2>&1&
 

 

你可能感兴趣的:(PHP,websocket)