# thinkphp5根目錄下安裝
官方文檔
http://www.hmoore.net/manual/thinkphp5_1/354134
~~~
composer require topthink/think-worker=2.0.*
~~~
## 找到以下路徑:
## worker_server.php為配置文件
```
tp5\config\worker_server.php
```
~~~
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
use think\facade\Env;
// +----------------------------------------------------------------------
// | Workerman設置 僅對 php think worker:server 指令有效
// +----------------------------------------------------------------------
return [
// 擴展自身需要的配置
'protocol' => 'websocket', // 協議 支持 tcp udp unix http websocket text
'host' => '0.0.0.0', // 監聽地址
'port' => 2345, // 監聽端口
'socket' => '', // 完整監聽地址
'context' => [], // socket 上下文選項
'worker_class' => '', // 自定義Workerman服務類名 支持數組定義多個服務
// 支持workerman的所有配置參數
'name' => 'thinkphp',
'count' => 4,
'daemonize' => false,
'pidFile' => Env::get('runtime_path') . 'worker.pid',
// 支持事件回調
// onWorkerStart
'onWorkerStart' => function ($worker) {
},
// onWorkerReload
'onWorkerReload' => function ($worker) {
},
// onConnect
'onConnect' => function ($connection) {
},
// onMessage
'onMessage' => function ($connection, $data) {
$connection->send('receive success');
},
// onClose
'onClose' => function ($connection) {
},
// onError
'onError' => function ($connection, $code, $msg) {
echo "error [ $code ] $msg\n";
},
];
~~~
# 進行配置
## worker_class為多個服務的時候用到
## 里面的值為`模塊/命名空間/類名`
~~~
'worker_class' => 'app\workerman\worker', // 自定義Workerman服務類名 支持數組定義多個服務
~~~
## 代碼案例:
~~~
<?php
namespace app\workerman;
use think\worker\Server;
class worker extends Server
{
protected $socket = 'text://0.0.0.0:1111';
protected $option=['name'=>"學習",'count'=>8]; //修改名稱,啟動多少進程等配置
public function onWorkerStart(){
}
}
~~~
# 支持以下函數

# 修改名稱等配置
~~~
protected $option=['name'=>"學習",'count'=>8];
~~~

- WebSocket協議
- 構造函數(6種協議)
- count(進程設置)
- name(鏈接名稱)
- $daemonize(守護進程設置)
- logFile(日志路徑)
- stdoutFile(守護進程記錄文件)
- connections(獲取鏈接數組的)
- worker的回調屬性
- worker類的方法
- Connection類的方法
- getRemotePort獲取端口方法
- getRemoteIp獲取IP地址
- close 安全關閉連接
- 定時器
- Channel分布式通信組件
- 心跳檢測程序
- liunx優化配置
- thinkphp5.1使用worerman
- thinkphp5.1中用Channel實現廣播通信
- thinkphp5.1中使用定時器
- thinkphp5.1使用TcpConnection類
- Gateway類使用
- BusinessWorker使用
- Register類的使用
- Events類使用(業務邏輯層)
- Lib\Gateway 接口(經常用)
- webman中間件stomp
- Gateway在thinkphp5.1里使用