swoole / rfc

Swoole 提案
116 stars 3 forks source link

提供 HttpServer / WebSocketServer 绑定多端口的实现 #3

Closed huangzhhui closed 6 years ago

huangzhhui commented 6 years ago

目前无法实现一个服务暴露多个端口用于 HTTP/WS 服务,建议提供此功能用于满足一些工具型后台或后台的功能

breath-co2 commented 6 years ago

一直就可以的吧

huangzhhui commented 6 years ago

@breath-co2 HTTP/WebSocket 服务器是主服务器,无法直接通过 listen 添加端口监听 HTTP/WebSocket 协议服务 https://wiki.swoole.com/wiki/page/16.html https://wiki.swoole.com/wiki/page/525.html

breath-co2 commented 6 years ago

你需要加一个 open_websocket_protocol 参数(文档有相关参数说明),例如:

$port1 = $server->listen("127.0.0.1", 9501, SWOOLE_SOCK_TCP);
$port1->set([
    'open_websocket_protocol' => true,
]);

同理,还有 open_http_protocolopen_http2_protocol 参数,另外需要注意的是,如果你是 new 了一个 http/websocket 的服务,又想监听普通的 tcp 端口,需要设置这些参数 false 才可以。