# 构造函数 \_\_construct
## 说明:
~~~
Worker::__construct([string $listen])
~~~
初始化一个Worker容器实例,可以设置容器的一些属性和回调接口,完成特定功能。
## 参数
#### **`$listen`**(必选参数,不填写表示不监听任何端口)
>[danger] 在Workerman中listen是可填,并且WarriorMan只支持TCP和UDP协议
> 想使用HTTP等应用层协议请阅读 [通讯协议](https://www.kancloud.cn/book/wwwoooshizha/warriorman/edit) 章节
$listen 的格式为 <协议>://<监听地址> 例如
*****
tcp: 例如`tcp://0.0.0.0:8686`
udp: 例如`udp://0.0.0.0:8686`
*****
## 例子
Worker作为http容器监听处理http请求
~~~
<?php
use Workerman\Worker;
require_once 'Workerman/Autoloader.php';
Warriorman\Worker::rename(); // 将Workerman改为Workerman
Warriorman\Runtime::enableCoroutine(); // hook相关函数
$http_worker= new Worker("tcp://0.0.0.0:8080");
$http_worker->protocol = "\Workerman\Protocols\Http";
$http_worker->onMessage = function ($connection, $data) {
$connection->send('hello world');
};
Worker::runAll();
~~~
## 运行
打开终端,进入到php脚本所在目录,执行`php test.php start`
~~~
php test.php start
Workerman[test.php] start in DEBUG mode
----------------------- WORKERMAN -----------------------------
Workerman version:3.2.7 PHP version:5.4.37
------------------------ WORKERS -------------------------------
user worker listen processes status
root none tcp://0.0.0.0:8080 4 [OK]
----------------------------------------------------------------
Press Ctrl-C to quit. Start success.
~~~
- 序言
- 启动停止
- 简单的开发示例
- 性能测试
- 性能测试-数据库
- 通讯协议
- Coroutine类
- create
- getCid
- yield
- resume
- sleep
- wait
- getTotalNum
- isExist
- defer
- Runtime类
- Worker类
- 构造函数
- 属性
- workerId
- id
- name
- protocol
- transport
- reusePort
- backlog
- connections
- stdoutFile
- pidFile
- logFile
- user
- reloadable
- daemonize
- globalEvent
- 回调属性
- onWorkerStart
- onWorkerReload
- onConnect
- onMessage
- onClose
- onBufferFull
- onBufferDrain
- onError
- 方法
- rename
- runAll
- stopAll
- listen
- TcpConnection类
- 属性
- id
- protocol
- worker
- maxSendBufferSize
- defaultMaxSendBufferSize
- defaultMaxPackageSize
- 方法
- set
- send
- getRemoteIp
- getRemotePort
- close
- destroy
- pauseRecv
- resumeRecv
- pipe
- Timer定时器类
- add
- del
- 定时器注意事项
- Channel类
- 构造方法
- push
- pop
- length
- isEmpty()