# 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设置的