laravel框架中引入Workerman

1.安装Workerman

  首先在laravel根目录下安装Workerman

  命令:$ composer require workerman/gateway-worker

2.创建 Workerman 启动文件

  创建一个 artisan 命令行工具来启动 Socket 服务端,在 app/Console/Commands 目录下建立命令行文件。

  <?php

namespaceApp\Console\Commands;useGatewayWorker\BusinessWorker;useGatewayWorker\Gateway;useGatewayWorker\Register;useIlluminate\Console\Command;useWorkerman\Worker;classWorkermanCommandextendsCommand{protected$signature='workman {action} {--d}';protected$description='Start a Workerman server.';publicfunctionhandle(){global$argv;$action=$this->argument('action');$argv[0]='wk';$argv[1]=$action;$argv[2]=$this->option('d')?'-d':'';$this->start();}privatefunctionstart(){$this->startGateWay();$this->startBusinessWorker();$this->startRegister();Worker::runAll();}privatefunctionstartBusinessWorker(){$worker=newBusinessWorker();$worker->name='BusinessWorker';$worker->count=1;$worker->registerAddress='127.0.0.1:1236';$worker->eventHandler= \App\Workerman\Events::class;}privatefunctionstartGateWay(){$gateway=newGateway("websocket://0.0.0.0:2346");$gateway->name='Gateway';$gateway->count=1;$gateway->lanIp='127.0.0.1';$gateway->startPort=2300;$gateway->pingInterval=30;$gateway->pingNotResponseLimit=0;$gateway->pingData='{"type":"@heart@"}';$gateway->registerAddress='127.0.0.1:1236';}privatefunctionstartRegister(){newRegister('text://0.0.0.0:1236');}}

 

3.创建事件监听文件

  创建一个 app/Workerman/Events.php 文件来监听处理 workman 的各种事件。

  <?php

namespaceApp\Workerman;classEvents{publicstaticfunctiononWorkerStart($businessWorker){}publicstaticfunctiononConnect($client_id){}publicstaticfunctiononWebSocketConnect($client_id,$data){}publicstaticfunctiononMessage($client_id,$message){}publicstaticfunctiononClose($client_id){}}

 

 

4. 启动 Workerman 服务端

  在命令行里面执行,支持的命令大概有 start|stop|restart,其中 -d 的意思是 daemon 模式。

  $ php artisan workman start -d

  当你看到如下结果的时候,workman 已经启动成功了。

  Workerman[wk] start in DEBUG mode

-----------------------WORKERMAN----------------------------- Workerman version:3.5.11PHP version:7.1.11------------------------WORKERS------------------------------- user worker listen processes status root Gateway websocket://0.0.0.0:2346 1 [OK] root BusinessWorker none 1[OK] root Register text://0.0.0.0:1236 1 [OK]---------------------------------------------------------------- Press Ctrl+C to stop. Start success. onWorkerStart

 

 

<?phpnamespaceApp\Console\Commands;useGatewayWorker\BusinessWorker;useGatewayWorker\Gateway;useGatewayWorker\Register;useIlluminate\Console\Command;useWorkerman\Worker;classWorkermanCommandextendsCommand{protected$signature='workman {action} {--d}';protected$description='Start a Workerman server.';publicfunctionhandle(){global$argv;$action=$this->argument('action');$argv[0]='wk';$argv[1]=$action;$argv[2]=$this->option('d')?'-d':'';$this->start();}privatefunctionstart(){$this->startGateWay();$this->startBusinessWorker();$this->startRegister();Worker::runAll();}privatefunctionstartBusinessWorker(){$worker=newBusinessWorker();$worker->name='BusinessWorker';$worker->count=1;$worker->registerAddress='127.0.0.1:1236';$worker->eventHandler= \App\Workerman\Events::class;}privatefunctionstartGateWay(){$gateway=newGateway("websocket://0.0.0.0:2346");$gateway->name='Gateway';$gateway->count=1;$gateway->lanIp='127.0.0.1';$gateway->startPort=2300;$gateway->pingInterval=30;$gateway->pingNotResponseLimit=0;$gateway->pingData='{"type":"@heart@"}';$gateway->registerAddress='127.0.0.1:1236';}privatefunctionstartRegister(){newRegister('text://0.0.0.0:1236');}}

转载于:https://www.cnblogs.com/MoMeak123/p/10885901.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值