workman (3) thinkphp5.0 は workerman を使用しています

創造し続け、成長を加速!「ナゲッツデイリー新プラン・10月アップデートチャレンジ」参加5日目、イベント詳細はこちら

Thinkphp5.0 フレームワークで workerman を使用する方法、この公式マニュアルには例も記載されています

「 thinkphp5.0 公式マニュアルをご覧ください。

ただし、彼が示した例はあまり詳細ではないかもしれません. 頻繁に読まないと理解できないかもしれません. おそらくここに追加して、グラフィックの例を書きます:

1 : Worker.php ファイルを追加する

注: このファイルは実際には普段使用しているコントローラーなので、アクセスできる限り、追加の場所は個人的な好みに依存します. ここでは、次の図に示すように、application/api/controller に追加しました:

111.png

内容は次のとおりです。

<?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 : プロジェクトのルート ディレクトリに起動ファイル worker.php を追加します (注: フレームワークのブートストラップ ファイルを読み込みます)。

ファイルの配置場所は次のとおりです。

222.png

内容は次のとおりです。

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

3: workerman サービスを開始する

server.php があるディレクトリに入るコマンド ライン

埋め込む:

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

次の図に示すように、実行は成功します。

333.png

以下は、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将被写入文件)
复制代码

詳しくは「ワーカーマン公式マニュアルをご覧ください。

良い提案があれば、下にコメントを入力してください。

個人ブログ guanchao.siteへようこそ

私のアプレットへようこそ: WeChat を開く -> 発見 -> アプレット -> 「in time」を検索

おすすめ

転載: juejin.im/post/7150468207122317326