<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 對應的Config類 ~~~ ESD\Core\Server\Config\PortConfig ~~~ ## 配置項 ~~~ /** * 名稱 * @var string */ protected $name; /** * @var string */ protected $portClass; /** * 需要監聽的ip地址默認為"0.0.0.0" * IPv4使用 127.0.0.1表示監聽本機,0.0.0.0表示監聽所有地址 * IPv6使用::1表示監聽本機,:: (相當于0:0:0:0:0:0:0:0) 表示監聽所有地址 * @var string */ protected $host; /** * 需要監聽的端口 * 監聽小于1024端口需要root權限 * @var int */ protected $port; /** * sock類型默認為SWOOLE_SOCK_TCP * @var int */ protected $sockType; /** * 是否啟動SSL * @var bool */ protected $enableSsl; /** * Listen隊列長度,此參數將決定最多同時有多少個待accept的連接 * @var int */ protected $backlog; /** * TCP_NoDelay open_tcp_nodelay => true ,啟用tcp_nodelay * 啟用open_tcp_nodelay,開啟后TCP連接發送數據時會關閉Nagle合并算法,立即發往客戶端連接。在某些場景下,如http服務器,可以提升響應速度。 * 默認情況下,發送數據采用Nagle 算法。這樣雖然提高了網絡吞吐量,但是實時性卻降低了,在一些交互性很強的應用程序來說是不允許的,使用TCP_NODELAY選項可以禁止Nagle 算法。 * @var bool */ protected $openTcpNodelay; /** * 開啟TCP快速握手特性。此項特性,可以提升TCP短連接的響應速度,在客戶端完成握手的第三步,發送SYN包時攜帶數據。 * @var bool */ protected $tcpFastopen; /** * 此參數設定一個秒數,當客戶端連接連接到服務器時,在約定秒數內并不會觸發accept,直到有數據發送,或者超時時才會觸發。 * @var int */ protected $tcpDeferAccept; /** * 打開EOF檢測,此選項將檢測客戶端連接發來的數據,當數據包結尾是指定的字符串時才會投遞給Worker進程。 * 否則會一直拼接數據包,直到超過緩存區或者超時才會中止。當出錯時底層會認為是惡意連接,丟棄數據并強制關閉連接。 * @var bool */ protected $openEofCheck; /** * 啟用EOF自動分包。 * 當設置open_eof_check后,底層檢測數據是否以特定的字符串結尾來進行數據緩沖,但默認只截取收到數據的末尾部分做對比,這時候可能會產生多條數據合并在一個包內。 * @var bool */ protected $openEofSplit; /** * 與 open_eof_check 或者 open_eof_split 配合使用,設置EOF字符串。 * @var string */ protected $packageEof; /** * 打開包長檢測特性。包長檢測提供了固定包頭+包體這種格式協議的解析。啟用后,可以保證Worker進程onReceive每次都會收到一個完整的數據包。 * @var bool */ protected $openLengthCheck; /** * 長度值的類型,接受一個字符參數,與php的 pack 函數一致。目前Swoole支持10種類型: * c:有符號、1字節 * C:無符號、1字節 * s :有符號、主機字節序、2字節 * S:無符號、主機字節序、2字節 * n:無符號、網絡字節序、2字節 * N:無符號、網絡字節序、4字節 * l:有符號、主機字節序、4字節(小寫L) * L:無符號、主機字節序、4字節(大寫L) * v:無符號、小端字節序、2字節 * V:無符號、小端字節序、4字節 * @var string */ protected $packageLengthType; /** * 設置最大數據包尺寸,單位為字節 * @var int */ protected $packageMaxLength; /** * 從第幾個字節開始計算長度,一般有2種情況: * length的值包含了整個包(包頭+包體),package_body_offset 為0 * 包頭長度為N字節,length的值不包含包頭,僅包含包體,package_body_offset設置為N * @var int */ protected $packageBodyOffset; /** * length長度值在包頭的第幾個字節。 * @var int */ protected $packageLengthOffset; /** * 設置SSL隧道加密,設置值為一個文件名字符串,制定cert證書和key私鑰的路徑。 * https應用瀏覽器必須信任證書才能瀏覽網頁 * wss應用中,發起WebSocket連接的頁面必須使用https * 瀏覽器不信任SSL證書將無法使用wss * 文件必須為PEM格式,不支持DER格式,可使用openssl工具進行轉換 * @var string */ protected $sslCertFile; /** * 啟用SSL后,設置ssl_ciphers來改變openssl默認的加密算法。Swoole底層默認使用EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH * @var string */ protected $sslCiphers; /** * 設置OpenSSL隧道加密的算法。Server與Client使用的算法必須一致,否則SSL/TLS握手會失敗,連接會被切斷。 默認算法為 SWOOLE_SSLv23_METHOD * @var string */ protected $sslMethod; /** * 啟用Http協議處理 * @var bool */ protected $openHttpProtocol; /** * 啟用websocket協議處理 * @var bool */ protected $openWebsocketProtocol; /** * 啟用mqtt協議處理,啟用后會解析mqtt包頭,worker進程onReceive每次會返回一個完整的mqtt數據包。 * @var bool */ protected $openMqttProtocol; /** * 啟用websocket協議中關閉幀(opcode為0x08的幀)在onMessage回調中接收,默認為false。 * 開啟后,可在WebSocketServer中的onMessage回調中接收到客戶端或服務端發送的關閉幀,開發者可自行對其進行處理。 * @var bool */ protected $openWebsocketCloseFrame; /** * 服務SSL設置驗證對端證書。默認關閉,即不驗證客戶端證書。若開啟,必須同時設置 ssl_client_cert_file選項 * @var bool */ protected $sslVerifyPeer; /** * 服務SSL設置驗證對端證書 * @var string */ protected $sslClientCertFile; /** * 設置端口重用,此參數用于優化TCP連接的Accept性能,啟用端口重用后多個進程可以同時進行Accept操作。 * @var bool */ protected $enableReusePort; /** * 設置此選項為true后,accept客戶端連接后將不會自動加入EventLoop,僅觸發onConnect回調。 * worker進程可以調用$serv->confirm($fd)對連接進行確認,此時才會將fd加入EventLoop開始進行數據收發,也可以調用$serv->close($fd)關閉此連接。 * @var bool */ protected $enableDelayReceive; /** * 是否自定義握手 * @var bool */ protected $customHandShake = false; /** * @var int */ protected $wsOpcode = self::WEBSOCKET_OPCODE_TEXT; ~~~ ## 例子 **需要注意的是** >[danger] name,port,及協議是必填,在yml中name可以省略會自動從上級Map中獲取 > 以下例子只是開啟端口,除了http外實際使用中還需要配置PackTool,詳情查看Pack插件 ### 開啟Http name會自動設置為http ~~~ port: http: host: 0.0.0.0 port: 8080 sock_type: 1 open_http_protocol: true ~~~ 端口類會有默認值,如需自己指定可以設置 port_class,值為類的全稱,端口類需要繼承 use ESD\Core\Server\Port\ServerPort ### 開啟Websocket ``` port: http: host: 0.0.0.0 port: 8081 sock_type: 1 open_websocket_protocol: true ws_opcode: 1 custom_hand_shake: false ``` * ws_opcode 為opcode值,默認為WEBSOCKET_OPCODE_TEXT也就是1 * custom_hand_shake 是否開啟自定義握手,默認false ### 開啟Tcp ``` port: tcp: name: tcp host: 0.0.0.0 port: 8082 sock_type: 1 open_length_check: true package_length_type: 'N' package_body_offset: 0 package_length_offset: 0 ``` * open_length_check 開啟長度檢查 需要配置 package_body_offset 和 package_length_offset * open_eof_check 開啟eof檢查,配合 open_eof_split,package_eof
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看