首頁 > php框架 > ThinkPHP > 在 ThinkPHP6 中使用 Workerman

在 ThinkPHP6 中使用 Workerman

Guanhui
發布: 2021-02-01 12:02:51
轉載
9723 人瀏覽過

在 ThinkPHP6 中使用 Workerman

ThinkPHP6 Workerman 基本上使用

Workerman

Workerman是純PHP開發的開源高效能的PHP socket 伺服器框架。廣泛的用於手機app、手遊服務端、網路遊戲伺服器、聊天室伺服器、硬體通訊伺服器、智慧家庭、車聯網、物聯網等領域的開發。支援TCP長連接,支援Websocket、HTTP等協議,支援自訂協議。基於workerman開發者可以更專注於業務邏輯開發,不必再為PHP Socket底層開發而煩惱。

相關推薦:《workerman教學

安裝

先透過composer 安裝

composer require topthink/think-worker
登入後複製

#使用

使用Workerman作為HttpServer

在命令列啟動服務端

php think worker
登入後複製

然後就可以透過瀏覽器直接存取目前應用程式

http://localhost:2346
登入後複製
登入後複製

linux下面可以支援下面指令

php think worker [start|stop|reload|restart|status]
登入後複製

workerman的參數可以在應用程式設定目錄下的worker.php裡面配置。

由於onWorkerStart運行的時候沒有HTTP_HOST,因此最好在應用程式設定檔中設定app_host

SocketServer

##在命令列啟動服務端(需要2.0.5 版本)

php think worker:server
登入後複製
登入後複製

預設會在0.0.0.0:2345開啟一個websocket服務。

如果需要自訂參數,可以在config/worker_server.php中進行配置,包括:

並且支援workerman所有的參數(包括全域靜態參數)。

也支援使用閉包方式定義相關事件回呼。

return [
 'socket' =>  'http://127.0.0.1:8000',
 'name' =>  'thinkphp',
 'count' =>  4,
 'onMessage' =>  function($connection, $data) {
 $connection->send(json_encode($data));
 },
];
登入後複製

也支援使用自訂類別作為Worker服務入口檔案類別。例如,我們可以建立一個服務類別(必須要繼承think\worker\Server),然後設定屬性和新增回呼方法

<?php
namespace app\http;
use think\worker\Server;
class Worker extends Server
{
 protected $socket = &#39;http://0.0.0.0:2346&#39;;
 public function onMessage($connection,$data)
 {
 $connection->send(json_encode($data));
 }
}
登入後複製

支援workerman所有的回呼方法定義(回呼方法必須是public型別)

然後在worker_server.php中增加設定參數:

return [
 &#39;worker_class&#39; =>  &#39;app\http\Worker&#39;,
];
登入後複製

定義此參數後,其它配置參數都不再有效。

在命令列啟動服務端

php think worker:server
登入後複製
登入後複製

然後在瀏覽器裡面訪問

http://localhost:2346
登入後複製
登入後複製

如果在Linux下面,同樣支援reload|restart|stop |status 操作

php think worker:server reload
登入後複製
推薦教學:《

PHP
#

以上是在 ThinkPHP6 中使用 Workerman的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.im
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板