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 = 'http://0.0.0.0:2346'; public function onMessage($connection,$data) { $connection->send(json_encode($data)); } }支援workerman所有的回呼方法定義(回呼方法必須是public型別)然後在worker_server.php中增加設定參數:
return [ 'worker_class' => 'app\http\Worker', ];定義此參數後,其它配置參數都不再有效。
在命令列啟動服務端
php think worker:server然後在瀏覽器裡面訪問
http://localhost:2346如果在Linux下面,同樣支援reload|restart|stop |status 操作
php think worker:server reload推薦教學:《
PHP》
#
以上是在 ThinkPHP6 中使用 Workerman的詳細內容。更多資訊請關注PHP中文網其他相關文章!