• tp5中使用workerman插件


    转载网址:

    https://www.php.cn/workerman/439344.html

    namespace apppushcontroller;
    
    
    
    use thinkworkerServer;
    
    
    
    class Worker extends Server
    
    {
    
    protected $socket = 'websocket://127.0.0.1:2346';
    
    
    
    /**
    
    * 收到信息
    
    * @param $connection
    
    * @param $data
    
    */
    
    public function onMessage($connection, $data)
    
    {
    
    $connection->send('我收到你的信息了');
    
    }
    
    
    
    /**
    
    * 当连接建立时触发的回调函数
    
    * @param $connection
    
    */
    
    public function onConnect($connection)
    
    {
    
    
    
    }
    
    
    
    /**
    
    * 当连接断开时触发的回调函数
    
    * @param $connection
    
    */
    
    public function onClose($connection)
    
    {
    
    
    
    }
    
    /**
    
    * 当客户端的连接上发生错误时触发
    
    * @param $connection
    
    * @param $code
    
    * @param $msg
    
    */
    
    public function onError($connection, $code, $msg)
    
    {
    
    echo "error $code $msg
    ";
    
    }
    
    
    
    /**
    
    * 每个进程启动
    
    * @param $worker
    
    */
    
    public function onWorkerStart($worker)
    
    {
    
    
    
    }
    
    }
    运行server.php

    命令:php server.php

    新建html文件
    基于tp5框架下,我们使用comporser工具下载workerman

    安装workerman:

    首先通过 composer 安装

    composer require topthink/think-worker -vvv

    在thinkphp5根目录(即与application同级目录)创建server.php,编辑一下内容。

    server.php 文件内容

    define('APP_PATH', __DIR__ . '/application/');

    define('BIND_MODULE','push/Worker');

    // 加载框架引导文件

    require __DIR__ . '/thinkphp/start.php';

    接着我们可以创建push模块的Worker控制器,这个路径一定要和server.php的line3中的路径相同。Worker.php如下:




    namespace apppushcontroller;



    use thinkworkerServer;



    class Worker extends Server

    {

    protected $socket = 'websocket://127.0.0.1:2346';



    /**

    * 收到信息

    * @param $connection

    * @param $data

    */

    public function onMessage($connection, $data)

    {

    $connection->send('我收到你的信息了');

    }



    /**

    * 当连接建立时触发的回调函数

    * @param $connection

    */

    public function onConnect($connection)

    {



    }



    /**

    * 当连接断开时触发的回调函数

    * @param $connection

    */

    public function onClose($connection)

    {



    }

    /**

    * 当客户端的连接上发生错误时触发

    * @param $connection

    * @param $code

    * @param $msg

    */

    public function onError($connection, $code, $msg)

    {

    echo "error $code $msg ";

    }



    /**

    * 每个进程启动

    * @param $worker

    */

    public function onWorkerStart($worker)

    {



    }

    }

    123

    运行 server.php

    命令:php server.php

    新建html文件

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <script>
     9     // 服务器
    10     ws = new WebSocket("ws://127.0.0.1:2346");
    11     ws.onopen = function() {
    12         alert("连接成功");
    13         ws.send('tom');
    14         alert("给服务端发送一个字符串:tom");
    15     };
    16     ws.onmessage = function(e) {
    17         alert("收到服务端的消息:" + e.data);
    18     };
    19 </script>
    20 </body>
    21 </html>
  • 相关阅读:
    java执行shell命令,chmod 777 xxx,改变权限无效的解决办法。
    SpringBoot配置双数据源(一个项目同时连接操作两台数据库)
    《机器学习》周志华西瓜书习题参考答案:第2章
    《机器学习》周志华西瓜书学习笔记(二):模型评估与选择
    只用一套解决方案,就可解决80%的交通物流行业信息难题
    原码、反码、补码
    400+节点的Elasticsearch集群运维
    史上最全PostgreSQL体系结构
    IDEA创建JAVAFX并打包成exe
    DB2 Zos 浅谈
  • 原文地址:https://www.cnblogs.com/keketoloveme/p/14595586.html
Copyright © 2020-2023  润新知