日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

laravel框架中引入Workerman

發(fā)布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel框架中引入Workerman 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.安裝Workerman

  首先在laravel根目錄下安裝Workerman

  命令:$ composer require workerman/gateway-worker

2.創(chuàng)建 Workerman 啟動文件

  創(chuàng)建一個 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.創(chuàng)建事件監(jiān)聽文件

  創(chuàng)建一個 app/Workerman/Events.php 文件來監(jiān)聽處理 workman 的各種事件。

  <?php

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

?

?

4. 啟動 Workerman 服務端

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

  $ php artisan workman start -d

  當你看到如下結果的時候,workman 已經(jīng)啟動成功了。

  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

總結

以上是生活随笔為你收集整理的laravel框架中引入Workerman的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。