图集1/3

正文 2397字数 502,624阅读


首先通过 composer 安装
composer require topthink/think-worker
Run code
Cut to clipboard

    windows 服务器需要下载的
    composer require workerman/workerman-for-win
    Run code
    Cut to clipboard


      安装成功后config 目录下,会多出几个文件


      打开worker_server.php 我们看到他默认的监听端口是2345,下面虽然也提供了一些回调方法,但是毕竟是在配置文件中,我们也不太好扩展,所以我们这时需要自定义workerman服务类

      步骤如下:
      新建一个应用,比如命名为http,然后新建一个php 类 Worker.php
      <?php namespace app\http; use think\worker\Server; class Worker extends Server { protected $socket = 'websocket://localhost:2345'; public function onMessage($connection, $data) { $connection->send("已经收到"); } /** * 当连接建立时触发的回调函数 * @param $connection */ public function onConnect($connection) { $connection->send("连接成功"); } /** * 当连接断开时触发的回调函数 * @param $connection */ public function onClose($connection) { } /** * 当客户端的连接上发生错误时触发 * @param $connection * @param $code * @param $msg */ public function onError($connection, $code, $msg) { echo "error $code $msg\n"; } /** * 每个进程启动 * @param $worker */ public function onWorkerStart($worker) { } }
      Run code
      Cut to clipboard


        然后在回到刚才的配置文件worker_server.php,修改worker_class 为你刚才创建的类,定义该参数后,其它配置参数均不再有效。

        在worker_server.php中增加配置参数:
        return [ 'worker_class' => 'app\http\Worker', ];
        Run code
        Cut to clipboard


          使用Workerman作为HttpServer,启动服务端,至此我们的服务端已经搭建完成了
          php think worker:server
          Run code
          Cut to clipboard



            我们可以新建一个html ,查看一下是否可以正常使用
            <html> <head> <meta charset="utf-8" /> <title>网页版群聊</title> </head> <body> <script> ws = new WebSocket("ws://localhost:2345"); ws.onopen = function() { console.info("webSocket通道建立成功!!!"); ws.send('hello'); console.log("给服务端发送一个字符串:hello"); }; ws.onmessage = function(even) { console.log("收到服务端的消息:" + even.data); }; </script> </body> </html>
            Run code
            Cut to clipboard


              Thinkphp6.x 如何配置使用 Workerman
              WebSocket 在线测试
              在 ThinkPHP6 中使用 Workerman
              thinkphp6整合workerman教程
              thinkPHP6+workerman即时通讯小demo
              Composer 中文网

              workerman手册
              ThinkPHP6.0 Workerman 手册