Swoole-1.8.0新增了對多埠混合協定的支援。 Server可以監聽多個端口,每個端口都可以設定不同的協定處理方式(set)和回呼函數(on)。 SSL/TLS傳輸加密也可以只對特定的連接埠啟用。 (建議學習: swoole視訊教學)
未呼叫set方法,設定協定處理選項的監聽端口,預設繼承主伺服器的設定
#未呼叫on方法,設定回呼函數的監聽端口,預設使用主伺服器的回呼函數
監聽埠返回的物件類型為swoole_server_port
監聽連接埠的swoole_server_port對象,可以呼叫set和on方法,使用方法與swoole_server完全一致
監聽埠只能設定少量特定的選項,只能設定資料收發的相關事件回呼函數
不同監聽埠的回呼函數,仍然是相同的Worker在進程空間內執行
主伺服器是WebSocket或Http協議,新監聽的TCP埠預設會繼承主Server的協定設定。必須單獨呼叫set方法設定新的協定才會啟用新協定
監聽新連接埠
$port1 = $server->listen("127.0.0.1", 9501, SWOOLE_SOCK_TCP); $port2 = $server->listen("127.0.0.1", 9502, SWOOLE_SOCK_UDP); $port3 = $server->listen("127.0.0.1", 9503, SWOOLE_SOCK_TCP | SWOOLE_SSL);
設定網路協定##
$port1->set([ 'open_length_check' => true, 'package_length_type' => 'N', 'package_length_offset' => 0, 'package_max_length' => 800000,] ); $port3->set([ 'open_eof_split' => true, 'package_eof' => "\r\n", 'ssl_cert_file' => 'ssl.cert', 'ssl_key_file' => 'ssl.key',] );
以上是swoole支援多埠不同協定嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!