trabajador (3) thinkphp5.0 utiliza trabajador

¡Continúe creando, acelere el crecimiento! Este es el 5to día de mi participación en el "Nuggets Daily New Plan · October Update Challenge", haz clic para ver los detalles del evento

Cómo usar workerman en el marco Thinkphp5.0, este manual oficial también brinda ejemplos

Vaya a " Manual oficial de thinkphp5.0 "

Sin embargo, creo que el ejemplo que dio puede no ser muy detallado. Si no lo lee a menudo, es posible que no lo entienda. Probablemente lo agregaré aquí y escribiré un ejemplo gráfico:

1 : Agregar archivo Worker.php

Nota: este archivo es en realidad el controlador que usa habitualmente, por lo que la ubicación de la adición depende de su preferencia personal, siempre que pueda acceder a él. Lo agregué a application/api/controller aquí, como se muestra en la siguiente figura:

111.png

El contenido es el siguiente:

<?php
/**
 * auther:camellia
 * date:20200815
 * email:805795955@qq.com
 */
namespace app\api\controller;
use think\Controller;
use think\Request;//使用request对象
use think\Db;//引入数据库操作类
use think\Session//使用session驱动
use think\worker\Server;
 
class Worker extends Server
{
    
    protected $socket 'websocket://127.0.0.1:8082';
 
    /**
     * 收到信息
     * @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\n";
    }
 
    /**
     * 每个进程启动
     * @param $worker
     */
    public function onWorkerStart($worker)
    {
    }
}
复制代码

2 : agregue el archivo de inicio worker.php en el directorio raíz del proyecto (nota: cargue el archivo de arranque del marco)

La ubicación de ubicación del archivo es como se muestra a continuación:

222.png

El contenido es el siguiente:

#!/usr/bin/env php
<?php
define('APP_PATH'__DIR__ . '/application/');
 
define('BIND_MODULE''api/Worker');
 
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';
复制代码

Tres: Inicie el servicio de trabajador.

Línea de comando para ingresar al directorio donde se encuentra server.php

implementar:

php server.php start   #注意大小写,注意启动文件的名称是否是server.php
复制代码

La ejecución es exitosa como se muestra en la siguiente figura:

333.png

La siguiente es una lista general de comandos comunes para workerman:

php worker.php status         #可以查看当前进程和服务器运行状态
php worker.php connections    #可以查看当前连接状态
php worker.php reload         #平滑重启服务器(用户不掉线)
php worker.php restart        #强制重启服务器(所有用户都会掉线)
php worker.php stop           #停止服务器
php worker.php start          #以调试方式启动服务器(debug状态,log将直接打印到终端)
php worker.php start -d       #以守护进程方式启动服务器(产品状态,log将被写入文件)
复制代码

Para obtener más información, consulte el " Manual oficial de Workerman "

Si tiene una buena sugerencia, ingrese su comentario a continuación.

Bienvenidos al blog personal  guanchao.site

Bienvenido a mi subprograma: abra WeChat -> descubrimiento -> subprograma -> busque "a tiempo"

Supongo que te gusta

Origin juejin.im/post/7150468207122317326
Recomendado
Clasificación