# ports.php
```php
use Server\CoreBase\PortManager;
$config['ports'][] = [
'socket_type' => PortManager::SOCK_TCP,
'socket_name' => '0.0.0.0',
'socket_port' => 9091,
'pack_tool' => 'LenJsonPack',
'route_tool' => 'NormalRoute',
];
$config['ports'][] = [
'socket_type' => PortManager::SOCK_TCP,
'socket_name' => '0.0.0.0',
'socket_port' => 9092,
'pack_tool' => 'EofJsonPack',
'route_tool' => 'NormalRoute',
];
$config['ports'][] = [
'socket_type' => PortManager::SOCK_HTTP,
'socket_name' => '0.0.0.0',
'socket_port' => 8081,
'route_tool' => 'NormalRoute',
'method_prefix' => 'http_'
];
$config['ports'][] = [
'socket_type' => PortManager::SOCK_WS,
'socket_name' => '0.0.0.0',
'socket_port' => 8083,
'route_tool' => 'NormalRoute',
'pack_tool' => 'NonJsonPack',
'opcode' => PortManager::WEBSOCKET_OPCODE_TEXT
];
return $config;
```
通过此设置可以配置开启多个端口,每个端口可以配置不同的封装器和路由器。
其中http不需要封装器可以不填写。
可以通过命名回调函数来为每个端口提供不同的回调。
可以配置的字段名为:
```
-----------HTTP------------
request
handshake
------------WS-------------
open
message
close
handshake
---------TCP/UDP--------
connect
receive
close
packet
```
还有些特殊的配置
* method_prefix 设置该端口访问的方法名前缀
* event_controller_name 设置该端口conect,close触发的控制器名称,不填默认是Appserver设置的
* close_method_name 设置该端口close触发的方法,不填默认是Appserver设置的
* connect_method_name 设置该端口conect触发的方法,不填默认是Appserver设置的