[DOC-CVS] [doc-en] master: Optimize swoole constants (#4670)

[email protected] (MARiA so cute via GitHub)
Newsgroups php.doc.cvs
Message-ID <[email protected]>
Author: MARiA so cute (NathanFreeman)
Committer: GitHub (web-flow)
Pusher: sy-records
Date: 2025-05-15T10:22:41+08:00

Commit: https://github.com/php/doc-en/commit/ecc53915a8e9eee17065ce22bef4dca3e42537d1
Raw diff: https://github.com/php/doc-en/commit/ecc53915a8e9eee17065ce22bef4dca3e42537d1.diff

Optimize swoole constants (#4670)

Changed paths:
  M  reference/swoole/constants.xml


Diff:

diff --git a/reference/swoole/constants.xml b/reference/swoole/constants.xml
index 782618020ea2..3f5b9cc88fff 100644
--- a/reference/swoole/constants.xml
+++ b/reference/swoole/constants.xml
@@ -6,63 +6,135 @@
  &extension.constants;
  <para>
   <variablelist>
-   <varlistentry xml:id="constant.swoole-base">
+   <varlistentry xml:id="constant.swoole-version">
     <term>
-     <constant>SWOOLE_BASE</constant>
+     <constant>SWOOLE_VERSION</constant>
+     (<type>string</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Swoole version.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-version-id">
+    <term>
+     <constant>SWOOLE_VERSION_ID</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Swoole version.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-thread">
+   <varlistentry xml:id="constant.swoole-major-version">
     <term>
-     <constant>SWOOLE_THREAD</constant>
+     <constant>SWOOLE_MAJOR_VERSION</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Swoole major version.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-process">
+   <varlistentry xml:id="constant.swoole-minor-version">
     <term>
-     <constant>SWOOLE_PROCESS</constant>
+     <constant>SWOOLE_MINOR_VERSION</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Swoole minor version.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-ipc-unsock">
+   <varlistentry xml:id="constant.swoole-release-version">
     <term>
-     <constant>SWOOLE_IPC_UNSOCK</constant>
+     <constant>SWOOLE_RELEASE_VERSION</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Swoole release version.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-ipc-msgqueue">
+   <varlistentry xml:id="constant.swoole-extra-version">
     <term>
-     <constant>SWOOLE_IPC_MSGQUEUE</constant>
+     <constant>SWOOLE_EXTRA_VERSION</constant>
+     (<type>string</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Swoole extra version.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-debug">
+    <term>
+     <constant>SWOOLE_DEBUG</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Debug mode.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-ipc-preemptive">
+   <varlistentry xml:id="constant.swoole-have-compression">
     <term>
-     <constant>SWOOLE_IPC_PREEMPTIVE</constant>
+     <constant>SWOOLE_HAVE_COMPRESSION</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Enable HTTP response compression mode.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-have-zlib">
+    <term>
+     <constant>SWOOLE_HAVE_ZLIB</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Have zlib compression tool.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-have-brotli">
+    <term>
+     <constant>SWOOLE_HAVE_BROTLI</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Have brotli compression tool.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-use-http2">
+    <term>
+     <constant>SWOOLE_USE_HTTP2</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Support http2 server.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-use-shortname">
+    <term>
+     <constant>SWOOLE_USE_SHORTNAME</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Enable/disable short aliases.
      </simpara>
     </listitem>
    </varlistentry>
@@ -73,6 +145,7 @@
     </term>
     <listitem>
      <simpara>
+      TCP ipv4 socket.
      </simpara>
     </listitem>
    </varlistentry>
@@ -83,6 +156,7 @@
     </term>
     <listitem>
      <simpara>
+      TCP ipv6 socket.
      </simpara>
     </listitem>
    </varlistentry>
@@ -93,6 +167,7 @@
     </term>
     <listitem>
      <simpara>
+      UDP ipv4 socket.
      </simpara>
     </listitem>
    </varlistentry>
@@ -103,6 +178,7 @@
     </term>
     <listitem>
      <simpara>
+      UDP ipv6 socket.
      </simpara>
     </listitem>
    </varlistentry>
@@ -113,6 +189,7 @@
     </term>
     <listitem>
      <simpara>
+      UNIX socket dgram.
      </simpara>
     </listitem>
    </varlistentry>
@@ -123,116 +200,348 @@
     </term>
     <listitem>
      <simpara>
+      UNIX socket stream.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-sock-sync">
+    <term>
+     <constant>SWOOLE_SOCK_SYNC</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Synchronous client mode.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-tcp">
+   <varlistentry xml:id="constant.swoole-sock-async">
     <term>
-     <constant>SWOOLE_TCP</constant>
+     <constant>SWOOLE_SOCK_ASYNC</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Asynchronous client mode.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-tcp6">
+   <varlistentry xml:id="constant.swoole-keep">
     <term>
-     <constant>SWOOLE_TCP6</constant>
+     <constant>SWOOLE_KEEP</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Swoole\Client supports creating a TCP long connection to the server in PHP-FPM/Apache.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-udp">
+   <varlistentry xml:id="constant.swoole-ssl">
     <term>
-     <constant>SWOOLE_UDP</constant>
+     <constant>SWOOLE_SSL</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Enable SSL tunnel encryption.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-udp6">
+   <varlistentry xml:id="constant.swoole-sslv3-method">
     <term>
-     <constant>SWOOLE_UDP6</constant>
+     <constant>SWOOLE_SSLv3_METHOD</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      SSLv3 method.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-unix-dgram">
+   <varlistentry xml:id="constant.swoole-sslv3-server-method">
     <term>
-     <constant>SWOOLE_UNIX_DGRAM</constant>
+     <constant>SWOOLE_SSLv3_SERVER_METHOD</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      SSLv3 server method.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-unix-stream">
+   <varlistentry xml:id="constant.swoole-sslv3-client-method">
     <term>
-     <constant>SWOOLE_UNIX_STREAM</constant>
+     <constant>SWOOLE_SSLv3_CLIENT_METHOD</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      SSLv3 client method.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-sock-sync">
+   <varlistentry xml:id="constant.swoole-tlsv1-method">
     <term>
-     <constant>SWOOLE_SOCK_SYNC</constant>
+     <constant>SWOOLE_TLSv1_METHOD</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      TLSv1 method.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-sock-async">
+   <varlistentry xml:id="constant.swoole-tlsv1-server-method">
     <term>
-     <constant>SWOOLE_SOCK_ASYNC</constant>
+     <constant>SWOOLE_TLSv1_SERVER_METHOD</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      TLSv1 server method.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-sync">
+   <varlistentry xml:id="constant.swoole-tlsv1-client-method">
     <term>
-     <constant>SWOOLE_SYNC</constant>
+     <constant>SWOOLE_TLSv1_CLIENT_METHOD</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      TLSv1 client method.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-async">
+   <varlistentry xml:id="constant.swoole-tlsv1-1-method">
     <term>
-     <constant>SWOOLE_ASYNC</constant>
+     <constant>SWOOLE_TLSv1_1_METHOD</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      TLSv1_1 method.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-keep">
+   <varlistentry xml:id="constant.swoole-tlsv1-1-server-method">
     <term>
-     <constant>SWOOLE_KEEP</constant>
+     <constant>SWOOLE_TLSv1_1_SERVER_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1_1 server method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-tlsv1-1-client-method">
+    <term>
+     <constant>SWOOLE_TLSv1_1_CLIENT_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1_1 client method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-tlsv1-2-method">
+    <term>
+     <constant>SWOOLE_TLSv1_2_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1_2 method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-tlsv1-2-server-method">
+    <term>
+     <constant>SWOOLE_TLSv1_2_SERVER_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1_2 server method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-tlsv1-2-client-method">
+    <term>
+     <constant>SWOOLE_TLSv1_2_CLIENT_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1_2 client method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dtls-server-method">
+    <term>
+     <constant>SWOOLE_DTLS_SERVER_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      DTLS server method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dtls-client-method">
+    <term>
+     <constant>SWOOLE_DTLS_CLIENT_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      DTLS client method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-sslv23-method">
+    <term>
+     <constant>SWOOLE_SSLv23_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSLv23 method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-sslv23-server-method">
+    <term>
+     <constant>SWOOLE_SSLv23_SERVER_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSLv23 server method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-sslv23-client-method">
+    <term>
+     <constant>SWOOLE_SSLv23_CLIENT_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSLv23 client method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-tls-method">
+    <term>
+     <constant>SWOOLE_TLS_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLS method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-tls-server-method">
+    <term>
+     <constant>SWOOLE_TLS_SERVER_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLS server method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-tls-client-method">
+    <term>
+     <constant>SWOOLE_TLS_CLIENT_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLS client method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ssl-sslv3">
+    <term>
+     <constant>SWOOLE_SSL_SSLv3</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSLv3 protocol.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ssl-tlsv1">
+    <term>
+     <constant>SWOOLE_SSL_TLSv1</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1 protocol.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ssl-tlsv1-1">
+    <term>
+     <constant>SWOOLE_SSL_TLSv1_1</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1_1 protocol.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ssl-tlsv1-2">
+    <term>
+     <constant>SWOOLE_SSL_TLSv1_2</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1_2 protocol.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ssl-tlsv1-3">
+    <term>
+     <constant>SWOOLE_SSL_TLSv1_3</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TLSv1_3 protocol.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ssl-dtls">
+    <term>
+     <constant>SWOOLE_SSL_DTLS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      DTLS protocol.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ssl-sslv2">
+    <term>
+     <constant>SWOOLE_SSL_SSLv2</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      SSLv2 protocol.
      </simpara>
     </listitem>
    </varlistentry>
@@ -243,6 +552,7 @@
     </term>
     <listitem>
      <simpara>
+      Whether to listen for readable events.
      </simpara>
     </listitem>
    </varlistentry>
@@ -253,240 +563,3288 @@
     </term>
     <listitem>
      <simpara>
+      Whether to listen for writable events.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-version">
+   <varlistentry xml:id="constant.swoole-strerror-system">
     <term>
-     <constant>SWOOLE_VERSION</constant>
-     (<type>string</type>)
+     <constant>SWOOLE_STRERROR_SYSTEM</constant>
+     (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Convert the system errno no into error messages.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-aio-base">
+   <varlistentry xml:id="constant.swoole-strerror-gai">
     <term>
-     <constant>SWOOLE_AIO_BASE</constant>
+     <constant>SWOOLE_STRERROR_GAI</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Convert the addr info errno no into error messages.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-aio-linux">
+   <varlistentry xml:id="constant.swoole-strerror-dns">
     <term>
-     <constant>SWOOLE_AIO_LINUX</constant>
+     <constant>SWOOLE_STRERROR_DNS</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Convert the DNS errno no into error messages.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-filelock">
+   <varlistentry xml:id="constant.swoole-strerror-swoole">
     <term>
-     <constant>SWOOLE_FILELOCK</constant>
+     <constant>SWOOLE_STRERROR_SWOOLE</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Convert the swoole errno no into error messages.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-mutex">
+   <varlistentry xml:id="constant.swoole-error-malloc-fail">
     <term>
-     <constant>SWOOLE_MUTEX</constant>
+     <constant>SWOOLE_ERROR_MALLOC_FAIL</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Malloc memory fail.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-sem">
+   <varlistentry xml:id="constant.swoole-error-system-call-fail">
     <term>
-     <constant>SWOOLE_SEM</constant>
+     <constant>SWOOLE_ERROR_SYSTEM_CALL_FAIL</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      System call fail.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-rwlock">
+   <varlistentry xml:id="constant.swoole-error-php-fatal-error">
     <term>
-     <constant>SWOOLE_RWLOCK</constant>
+     <constant>SWOOLE_ERROR_PHP_FATAL_ERROR</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      PHP fatal error.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.websocket-opcode-text">
+   <varlistentry xml:id="constant.swoole-error-name-too-long">
     <term>
-     <constant>WEBSOCKET_OPCODE_TEXT</constant>
+     <constant>SWOOLE_ERROR_NAME_TOO_LONG</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Name too long.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.websocket-opcode-binary">
+   <varlistentry xml:id="constant.swoole-error-invalid-params">
     <term>
-     <constant>WEBSOCKET_OPCODE_BINARY</constant>
+     <constant>SWOOLE_ERROR_INVALID_PARAMS</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Invalid params.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.websocket-opcode-ping">
+   <varlistentry xml:id="constant.swoole-error-queue-full">
     <term>
-     <constant>WEBSOCKET_OPCODE_PING</constant>
+     <constant>SWOOLE_ERROR_QUEUE_FULL</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Queue full.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.websocket-status-connection">
+   <varlistentry xml:id="constant.swoole-error-operation-not-support">
     <term>
-     <constant>WEBSOCKET_STATUS_CONNECTION</constant>
+     <constant>SWOOLE_ERROR_OPERATION_NOT_SUPPORT</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Operation not support.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.websocket-status-handshake">
+   <varlistentry xml:id="constant.swoole-error-protocol-error">
     <term>
-     <constant>WEBSOCKET_STATUS_HANDSHAKE</constant>
+     <constant>SWOOLE_ERROR_PROTOCOL_ERROR</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Protocol error.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.websocket-status-frame">
+   <varlistentry xml:id="constant.swoole-error-wrong-operation">
     <term>
-     <constant>WEBSOCKET_STATUS_FRAME</constant>
+     <constant>SWOOLE_ERROR_WRONG_OPERATION</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      Wrong operation.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.websocket-status-active">
+   <varlistentry xml:id="constant.swoole-error-php-runtime-notice">
     <term>
-     <constant>WEBSOCKET_STATUS_ACTIVE</constant>
+     <constant>SWOOLE_ERROR_PHP_RUNTIME_NOTICE</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      PHP runtime notice.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-fast-pack">
+   <varlistentry xml:id="constant.swoole-error-for-test">
     <term>
-     <constant>SWOOLE_FAST_PACK</constant>
+     <constant>SWOOLE_ERROR_FOR_TEST</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
+      For test.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-log-debug">
+   <varlistentry xml:id="constant.swoole-error-no-payload">
     <term>
-     <constant>SWOOLE_LOG_DEBUG</constant>
+     <constant>SWOOLE_ERROR_NO_PAYLOAD</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
-      Debug log.
-      Available as of swoole 2.1.2.
+      No payload.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-log-trace">
+   <varlistentry xml:id="constant.swoole-error-undefined-behavior">
     <term>
-     <constant>SWOOLE_LOG_TRACE</constant>
+     <constant>SWOOLE_ERROR_UNDEFINED_BEHAVIOR</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
-      Trace log.
-      Available as of swoole 2.1.2.
+      Undefined behavior.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-log-info">
+   <varlistentry xml:id="constant.swoole-error-not-thread-safety">
     <term>
-     <constant>SWOOLE_LOG_INFO</constant>
+     <constant>SWOOLE_ERROR_NOT_THREAD_SAFETY</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
-      Info log.
-      Available as of swoole 2.1.2.
+      Not thread safety.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-log-notice">
+   <varlistentry xml:id="constant.swoole-error-file-not-exist">
     <term>
-     <constant>SWOOLE_LOG_NOTICE</constant>
+     <constant>SWOOLE_ERROR_FILE_NOT_EXIST</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
-      Notice log.
-      Available as of swoole 2.1.2.
+      File not exist.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-log-warning">
+   <varlistentry xml:id="constant.swoole-error-file-too-large">
     <term>
-     <constant>SWOOLE_LOG_WARNING</constant>
+     <constant>SWOOLE_ERROR_FILE_TOO_LARGE</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
-      Warning log.
-      Available as of swoole 2.1.2.
+      File too large.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-log-error">
+   <varlistentry xml:id="constant.swoole-error-file-empty">
     <term>
-     <constant>SWOOLE_LOG_ERROR</constant>
+     <constant>SWOOLE_ERROR_FILE_EMPTY</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
-      Error log.
-      Available as of swoole 2.1.2.
+      File empty.
      </simpara>
     </listitem>
    </varlistentry>
-   <varlistentry xml:id="constant.swoole-log-none">
+   <varlistentry xml:id="constant.swoole-error-dnslookup-duplicate-request">
     <term>
-     <constant>SWOOLE_LOG_NONE</constant>
+     <constant>SWOOLE_ERROR_DNSLOOKUP_DUPLICATE_REQUEST</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      DNS Lookup duplicate request.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-dnslookup-resolve-failed">
+    <term>
+     <constant>SWOOLE_ERROR_DNSLOOKUP_RESOLVE_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      DNS Lookup resolve failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-dnslookup-resolve-timeout">
+    <term>
+     <constant>SWOOLE_ERROR_DNSLOOKUP_RESOLVE_TIMEOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      DNS Lookup resolve timeout.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-dnslookup-unsupported">
+    <term>
+     <constant>SWOOLE_ERROR_DNSLOOKUP_UNSUPPORTED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      DNS Lookup unsupported.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-dnslookup-no-server">
+    <term>
+     <constant>SWOOLE_ERROR_DNSLOOKUP_NO_SERVER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      DNS Lookup no server.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-bad-ipv6-address">
+    <term>
+     <constant>SWOOLE_ERROR_BAD_IPV6_ADDRESS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Bad ipv6 address.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-unregistered-signal">
+    <term>
+     <constant>SWOOLE_ERROR_UNREGISTERED_SIGNAL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Unregistered signal.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-bad-host-addr">
+    <term>
+     <constant>SWOOLE_ERROR_BAD_HOST_ADDR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Bad host addr.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-event-socket-removed">
+    <term>
+     <constant>SWOOLE_ERROR_EVENT_SOCKET_REMOVED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Event socket removed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-session-closed-by-server">
+    <term>
+     <constant>SWOOLE_ERROR_SESSION_CLOSED_BY_SERVER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Session closed by server.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-session-closed-by-client">
+    <term>
+     <constant>SWOOLE_ERROR_SESSION_CLOSED_BY_CLIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Session closed by client.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-session-closing">
+    <term>
+     <constant>SWOOLE_ERROR_SESSION_CLOSING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Session closing.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-session-closed">
+    <term>
+     <constant>SWOOLE_ERROR_SESSION_CLOSED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Session closed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-session-not-exist">
+    <term>
+     <constant>SWOOLE_ERROR_SESSION_NOT_EXIST</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Session not exist.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-session-invalid-id">
+    <term>
+     <constant>SWOOLE_ERROR_SESSION_INVALID_ID</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Session invalid id.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-session-discard-timeout-data">
+    <term>
+     <constant>SWOOLE_ERROR_SESSION_DISCARD_TIMEOUT_DATA</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Session discard timeout data.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-session-discard-data">
+    <term>
+     <constant>SWOOLE_ERROR_SESSION_DISCARD_DATA</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Session discard data.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-output-buffer-overflow">
+    <term>
+     <constant>SWOOLE_ERROR_OUTPUT_BUFFER_OVERFLOW</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Output buffer overflow.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-output-send-yield">
+    <term>
+     <constant>SWOOLE_ERROR_OUTPUT_SEND_YIELD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Output send yield
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-ssl-not-ready">
+    <term>
+     <constant>SWOOLE_ERROR_SSL_NOT_READY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSL not ready
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-ssl-cannot-use-senfile">
+    <term>
+     <constant>SWOOLE_ERROR_SSL_CANNOT_USE_SENFILE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSL cannot use senfile
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-ssl-empty-peer-certificate">
+    <term>
+     <constant>SWOOLE_ERROR_SSL_EMPTY_PEER_CERTIFICATE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSL empty peer certificate.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-ssl-verify-failed">
+    <term>
+     <constant>SWOOLE_ERROR_SSL_VERIFY_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSL verify failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-ssl-bad-client">
+    <term>
+     <constant>SWOOLE_ERROR_SSL_BAD_CLIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSL bad client.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-ssl-bad-protocol">
+    <term>
+     <constant>SWOOLE_ERROR_SSL_BAD_PROTOCOL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSL bad protocol.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-ssl-reset">
+    <term>
+     <constant>SWOOLE_ERROR_SSL_RESET</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSL reset.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-ssl-handshake-failed">
+    <term>
+     <constant>SWOOLE_ERROR_SSL_HANDSHAKE_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      SSL handshake failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-package-length-too-large">
+    <term>
+     <constant>SWOOLE_ERROR_PACKAGE_LENGTH_TOO_LARGE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Package length too large.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-package-length-not-found">
+    <term>
+     <constant>SWOOLE_ERROR_PACKAGE_LENGTH_NOT_FOUND</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Package length not found.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-data-length-too-large">
+    <term>
+     <constant>SWOOLE_ERROR_DATA_LENGTH_TOO_LARGE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Data length too large.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-package-malformed-data">
+    <term>
+     <constant>SWOOLE_ERROR_PACKAGE_MALFORMED_DATA</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Package malformed error data.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-task-package-too-big">
+    <term>
+     <constant>SWOOLE_ERROR_TASK_PACKAGE_TOO_BIG</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Task package too big.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-task-dispatch-fail">
+    <term>
+     <constant>SWOOLE_ERROR_TASK_DISPATCH_FAIL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Task dispatch fail.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-task-timeout">
+    <term>
+     <constant>SWOOLE_ERROR_TASK_TIMEOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Task timeout.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http2-stream-id-too-big">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP2_STREAM_ID_TOO_BIG</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http2 stream id too big.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http2-stream-no-header">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP2_STREAM_NO_HEADER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http2 stream no header.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http2-stream-not-found">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP2_STREAM_NOT_FOUND</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http2 stream not found.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http2-stream-ignore">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP2_STREAM_IGNORE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http2 stream ignore.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http2-send-control-frame-failed">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP2_SEND_CONTROL_FRAME_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http2 send control frame failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-aio-bad-request">
+    <term>
+     <constant>SWOOLE_ERROR_AIO_BAD_REQUEST</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Aio bad request.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-aio-canceled">
+    <term>
+     <constant>SWOOLE_ERROR_AIO_CANCELED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Aio canceled.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-aio-timeout">
+    <term>
+     <constant>SWOOLE_ERROR_AIO_TIMEOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Aio timeout.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-client-no-connection">
+    <term>
+     <constant>SWOOLE_ERROR_CLIENT_NO_CONNECTION</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Client no connection.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-socket-closed">
+    <term>
+     <constant>SWOOLE_ERROR_SOCKET_CLOSED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Socket closed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-socket-poll-timeout">
+    <term>
+     <constant>SWOOLE_ERROR_SOCKET_POLL_TIMEOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Socket poll timeout.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-socks5-unsupport-version">
+    <term>
+     <constant>SWOOLE_ERROR_SOCKS5_UNSUPPORT_VERSION</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Socks5 unsupport version.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-socks5-unsupport-method">
+    <term>
+     <constant>SWOOLE_ERROR_SOCKS5_UNSUPPORT_METHOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Socks5 unsupport method.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-socks5-auth-failed">
+    <term>
+     <constant>SWOOLE_ERROR_SOCKS5_AUTH_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Socks5 auth failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-socks5-server-error">
+    <term>
+     <constant>SWOOLE_ERROR_SOCKS5_SERVER_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Socks5 server error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-socks5-handshake-error">
+    <term>
+     <constant>SWOOLE_ERROR_SOCKS5_HANDSHAKE_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Socks5 handshake failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http-proxy-handshake-error">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP_PROXY_HANDSHAKE_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http proxy handshake error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http-invalid-protocol">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP_INVALID_PROTOCOL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http invalid protocol.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http-proxy-handshake-failed">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP_PROXY_HANDSHAKE_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http proxy handshake failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http-proxy-bad-response">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP_PROXY_BAD_RESPONSE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http proxy bad response.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http-conflict-header">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP_CONFLICT_HEADER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http conflict header.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http-context-unavailable">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP_CONTEXT_UNAVAILABLE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http context unavailable.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-http-cookie-unavailable">
+    <term>
+     <constant>SWOOLE_ERROR_HTTP_COOKIE_UNAVAILABLE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Http cookie unavailable.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-websocket-bad-client">
+    <term>
+     <constant>SWOOLE_ERROR_WEBSOCKET_BAD_CLIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket bad client.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-websocket-bad-opcode">
+    <term>
+     <constant>SWOOLE_ERROR_WEBSOCKET_BAD_OPCODE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket bad opcode.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-websocket-unconnected">
+    <term>
+     <constant>SWOOLE_ERROR_WEBSOCKET_UNCONNECTED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket unconnected.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-websocket-handshake-failed">
+    <term>
+     <constant>SWOOLE_ERROR_WEBSOCKET_HANDSHAKE_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket handshake failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-websocket-pack-failed">
+    <term>
+     <constant>SWOOLE_ERROR_WEBSOCKET_PACK_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket pack failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-websocket-unpack-failed">
+    <term>
+     <constant>SWOOLE_ERROR_WEBSOCKET_UNPACK_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket unpack failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-websocket-incomplete-packet">
+    <term>
+     <constant>SWOOLE_ERROR_WEBSOCKET_INCOMPLETE_PACKET</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket incomplete packet.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-must-created-before-client">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_MUST_CREATED_BEFORE_CLIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server must be created before client.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-too-many-socket">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_TOO_MANY_SOCKET</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server too many socket.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-worker-terminated">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_WORKER_TERMINATED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server worker terminated.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-invalid-listen-port">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_INVALID_LISTEN_PORT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server invalid listen port.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-too-many-listen-port">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_TOO_MANY_LISTEN_PORT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server too many listen port.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-pipe-buffer-full">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_PIPE_BUFFER_FULL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server pipe buffer full.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-no-idle-worker">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_NO_IDLE_WORKER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server no idle worker.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-only-start-one">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_ONLY_START_ONE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server only start one.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-send-in-master">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_SEND_IN_MASTER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server send in master.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-invalid-request">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_INVALID_REQUEST</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server invalid request.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-connect-fail">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_CONNECT_FAIL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server connect failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-invalid-command">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_INVALID_COMMAND</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server invalid command.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-is-not-regular-file">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_IS_NOT_REGULAR_FILE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server is not regular file.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-send-to-woker-timeout">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_SEND_TO_WOKER_TIMEOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server send to woker timeout.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-invalid-callback">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_INVALID_CALLBACK</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server invalid callback.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-unrelated-thread">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_UNRELATED_THREAD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server unrelated thread.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-worker-exit-timeout">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_WORKER_EXIT_TIMEOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server worker exit timeout.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-worker-abnormal-pipe-data">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_WORKER_ABNORMAL_PIPE_DATA</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server worker abnormal pipe data.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-server-worker-unprocessed-data">
+    <term>
+     <constant>SWOOLE_ERROR_SERVER_WORKER_UNPROCESSED_DATA</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server worker unprocessed data.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-out-of-coroutine">
+    <term>
+     <constant>SWOOLE_ERROR_CO_OUT_OF_COROUTINE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine out of coroutine.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-has-been-bound">
+    <term>
+     <constant>SWOOLE_ERROR_CO_HAS_BEEN_BOUND</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine has been bound.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-has-been-discarded">
+    <term>
+     <constant>SWOOLE_ERROR_CO_HAS_BEEN_DISCARDED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine has been discarded.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-mutex-double-unlock">
+    <term>
+     <constant>SWOOLE_ERROR_CO_MUTEX_DOUBLE_UNLOCK</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine mutex double unlock.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-block-object-locked">
+    <term>
+     <constant>SWOOLE_ERROR_CO_BLOCK_OBJECT_LOCKED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine block object locked.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-block-object-waiting">
+    <term>
+     <constant>SWOOLE_ERROR_CO_BLOCK_OBJECT_WAITING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine block object waiting.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-yield-failed">
+    <term>
+     <constant>SWOOLE_ERROR_CO_YIELD_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine yield failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-getcontext-failed">
+    <term>
+     <constant>SWOOLE_ERROR_CO_GETCONTEXT_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine getcontext failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-swapcontext-failed">
+    <term>
+     <constant>SWOOLE_ERROR_CO_SWAPCONTEXT_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine swapcontext failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-makecontext-failed">
+    <term>
+     <constant>SWOOLE_ERROR_CO_MAKECONTEXT_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine makecontext failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-iocpinit-failed">
+    <term>
+     <constant>SWOOLE_ERROR_CO_IOCPINIT_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine iocpinit failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-protect-stack-failed">
+    <term>
+     <constant>SWOOLE_ERROR_CO_PROTECT_STACK_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine protect stack failed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-std-thread-link-error">
+    <term>
+     <constant>SWOOLE_ERROR_CO_STD_THREAD_LINK_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine std thread link error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-disabled-multi-thread">
+    <term>
+     <constant>SWOOLE_ERROR_CO_DISABLED_MULTI_THREAD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine disabled multi thread.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-cannot-cancel">
+    <term>
+     <constant>SWOOLE_ERROR_CO_CANNOT_CANCEL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine cannot cancel.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-not-exists">
+    <term>
+     <constant>SWOOLE_ERROR_CO_NOT_EXISTS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine not exists.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-canceled">
+    <term>
+     <constant>SWOOLE_ERROR_CO_CANCELED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine canceled.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-timedout">
+    <term>
+     <constant>SWOOLE_ERROR_CO_TIMEDOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine timedout.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-error-co-socket-close-wait">
+    <term>
+     <constant>SWOOLE_ERROR_CO_SOCKET_CLOSE_WAIT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine socket close wait.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-server">
+    <term>
+     <constant>SWOOLE_TRACE_SERVER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record server log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-client">
+    <term>
+     <constant>SWOOLE_TRACE_CLIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record client log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-buffer">
+    <term>
+     <constant>SWOOLE_TRACE_BUFFER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record buffer log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-conn">
+    <term>
+     <constant>SWOOLE_TRACE_CONN</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record connect log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-event">
+    <term>
+     <constant>SWOOLE_TRACE_EVENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record event log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-worker">
+    <term>
+     <constant>SWOOLE_TRACE_WORKER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record worker log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-memory">
+    <term>
+     <constant>SWOOLE_TRACE_MEMORY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record memory log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-reactor">
+    <term>
+     <constant>SWOOLE_TRACE_REACTOR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record reactor log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-php">
+    <term>
+     <constant>SWOOLE_TRACE_PHP</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record php log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-http">
+    <term>
+     <constant>SWOOLE_TRACE_HTTP</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record http log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-http2">
+    <term>
+     <constant>SWOOLE_TRACE_HTTP2</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record http2 log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-eof-protocol">
+    <term>
+     <constant>SWOOLE_TRACE_EOF_PROTOCOL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record eof protocol log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-length-protocol">
+    <term>
+     <constant>SWOOLE_TRACE_LENGTH_PROTOCOL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record length protocol log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-close">
+    <term>
+     <constant>SWOOLE_TRACE_CLOSE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record close event log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-websocket">
+    <term>
+     <constant>SWOOLE_TRACE_WEBSOCKET</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record websocket log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-redis-client">
+    <term>
+     <constant>SWOOLE_TRACE_REDIS_CLIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record redis client log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-mysql-client">
+    <term>
+     <constant>SWOOLE_TRACE_MYSQL_CLIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record mysql client log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-http-client">
+    <term>
+     <constant>SWOOLE_TRACE_HTTP_CLIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record http client log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-aio">
+    <term>
+     <constant>SWOOLE_TRACE_AIO</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record AIO log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-ssl">
+    <term>
+     <constant>SWOOLE_TRACE_SSL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record SSL log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-normal">
+    <term>
+     <constant>SWOOLE_TRACE_NORMAL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record normal log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-channel">
+    <term>
+     <constant>SWOOLE_TRACE_CHANNEL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record channel log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-timer">
+    <term>
+     <constant>SWOOLE_TRACE_TIMER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record timer log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-socket">
+    <term>
+     <constant>SWOOLE_TRACE_SOCKET</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record socket log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-coroutine">
+    <term>
+     <constant>SWOOLE_TRACE_COROUTINE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record coroutine log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-context">
+    <term>
+     <constant>SWOOLE_TRACE_CONTEXT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record context log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-co-http-server">
+    <term>
+     <constant>SWOOLE_TRACE_CO_HTTP_SERVER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record coroutine http server log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-table">
+    <term>
+     <constant>SWOOLE_TRACE_TABLE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record table log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-co-curl">
+    <term>
+     <constant>SWOOLE_TRACE_CO_CURL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record coroutine curl log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-cares">
+    <term>
+     <constant>SWOOLE_TRACE_CARES</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record cares log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-zlib">
+    <term>
+     <constant>SWOOLE_TRACE_ZLIB</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record zlib log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-co-pgsql">
+    <term>
+     <constant>SWOOLE_TRACE_CO_PGSQL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record pgsql coroutine log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-co-odbc">
+    <term>
+     <constant>SWOOLE_TRACE_CO_ODBC</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record odbc coroutine log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-co-oracle">
+    <term>
+     <constant>SWOOLE_TRACE_CO_ORACLE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record oracle coroutine log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-co-sqlite">
+    <term>
+     <constant>SWOOLE_TRACE_CO_SQLITE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record sqlite coroutine log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-trace-all">
+    <term>
+     <constant>SWOOLE_TRACE_ALL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record all level log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-debug">
+    <term>
+     <constant>SWOOLE_LOG_DEBUG</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record debug level log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-trace">
+    <term>
+     <constant>SWOOLE_LOG_TRACE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record trace level log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-info">
+    <term>
+     <constant>SWOOLE_LOG_INFO</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record info level log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-notice">
+    <term>
+     <constant>SWOOLE_LOG_NOTICE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record notice level log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-warning">
+    <term>
+     <constant>SWOOLE_LOG_WARNING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record warning level log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-error">
+    <term>
+     <constant>SWOOLE_LOG_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Record error level log flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-none">
+    <term>
+     <constant>SWOOLE_LOG_NONE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Equivalent to turning off log information, log information will not be thrown.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-rotation-single">
+    <term>
+     <constant>SWOOLE_LOG_ROTATION_SINGLE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      disable log rotation.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-rotation-monthly">
+    <term>
+     <constant>SWOOLE_LOG_ROTATION_MONTHLY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Rotate logs monthly.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-rotation-daily">
+    <term>
+     <constant>SWOOLE_LOG_ROTATION_DAILY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Rotate logs daily.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-rotation-hourly">
+    <term>
+     <constant>SWOOLE_LOG_ROTATION_HOURLY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Rotate logs hourly.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-log-rotation-every-minute">
+    <term>
+     <constant>SWOOLE_LOG_ROTATION_EVERY_MINUTE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Rotate logs every minute.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ipc-none">
+    <term>
+     <constant>SWOOLE_IPC_NONE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Do not use any inter-process communication (IPC) features.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ipc-unixsock">
+    <term>
+     <constant>SWOOLE_IPC_UNIXSOCK</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      For inter-process communication (IPC), using Unix domain sockets (UnixSocket) in coroutine mode
+      is highly recommended.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ipc-socket">
+    <term>
+     <constant>SWOOLE_IPC_SOCKET</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      To use sockets for inter-process communication (IPC),
+      the listen method must be called to specify the address and port to monitor.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-iov-max">
+    <term>
+     <constant>SWOOLE_IOV_MAX</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      MAX iov limit.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-iouring-default">
+    <term>
+     <constant>SWOOLE_IOURING_DEFAULT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      In interrupt-driven mode, I/O requests can be submitted via the io_uring_enter syscall,
+      and completion is determined by directly checking the completion queue status.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-iouring-sqpoll">
+    <term>
+     <constant>SWOOLE_IOURING_SQPOLL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      In kernel polling mode, the kernel creates dedicated threads to submit and reap I/O requests,
+      nearly eliminating user-kernel context switches.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-base">
+    <term>
+     <constant>SWOOLE_BASE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Basic mode.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-process">
+    <term>
+     <constant>SWOOLE_PROCESS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Multi-process mode.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-thread">
+    <term>
+     <constant>SWOOLE_THREAD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Multi-thread mode.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ipc-unsock">
+    <term>
+     <constant>SWOOLE_IPC_UNSOCK</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      The task process communicates with the worker process using a Unix Socket.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ipc-msgqueue">
+    <term>
+     <constant>SWOOLE_IPC_MSGQUEUE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      The task process communicates with the worker process using a sysvmsg queue.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-ipc-preemptive">
+    <term>
+     <constant>SWOOLE_IPC_PREEMPTIVE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      The task process communicates with the worker process using a preemptive mode over a sysvmsg queue.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-server-command-master">
+    <term>
+     <constant>SWOOLE_SERVER_COMMAND_MASTER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Master process accept requests.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-server-command-manager">
+    <term>
+     <constant>SWOOLE_SERVER_COMMAND_MANAGER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Manager process accept requests.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-server-command-reactor-thread">
+    <term>
+     <constant>SWOOLE_SERVER_COMMAND_REACTOR_THREAD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Reactor thread accept requests.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-server-command-event-worker">
+    <term>
+     <constant>SWOOLE_SERVER_COMMAND_EVENT_WORKER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Event worker thread process accept requests.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-server-command-task-worker">
+    <term>
+     <constant>SWOOLE_SERVER_COMMAND_TASK_WORKER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Task worker thread process accept requests.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-round">
+    <term>
+     <constant>SWOOLE_DISPATCH_ROUND</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Round robin mode, each Worker process will be allocated sequentially for every received connection.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-fdmod">
+    <term>
+     <constant>SWOOLE_DISPATCH_FDMOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Allocate Worker based on the connection's file descriptor. This ensures that data from the same connection
+      will be processed by the same Worker only.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-idle-worker">
+    <term>
+     <constant>SWOOLE_DISPATCH_IDLE_WORKER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      The main process will choose delivery based on the workload status of the Worker, delivering only to idle Workers.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-ipmod">
+    <term>
+     <constant>SWOOLE_DISPATCH_IPMOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Allocate based on client IP using modulo hash, assigning to a specific Worker process.
+      This ensures that data from the same source IP connection will always be assigned to
+      the same Worker process. Algorithm: inet_addr_mod(ClientIP, worker_num).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-uidmod">
+    <term>
+     <constant>SWOOLE_DISPATCH_UIDMOD</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Requires binding a connection to a unique uid by calling Server->bind() in the user code.
+      Then, the underlying system allocates to different Worker processes based on the value of UID.
+      Algorithm: UID % worker_num. To use strings as UID, you can use crc32(UID_STRING).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-userfunc">
+    <term>
+     <constant>SWOOLE_DISPATCH_USERFUNC</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Set a dispatch_func callback function, where its return value determines
+      which process handles the request.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-co-conn-lb">
+    <term>
+     <constant>SWOOLE_DISPATCH_CO_CONN_LB</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Determine which process handles the request based on the number of connections.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-co-req-lb">
+    <term>
+     <constant>SWOOLE_DISPATCH_CO_REQ_LB</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Determine which process handles the request based on the number of requests.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-dispatch-concurrent-lb">
+    <term>
+     <constant>SWOOLE_DISPATCH_CONCURRENT_LB</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Determine which process handles the request based on concurrency count.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-worker-busy">
+    <term>
+     <constant>SWOOLE_WORKER_BUSY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Process is busy.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-worker-idle">
+    <term>
+     <constant>SWOOLE_WORKER_IDLE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Process is idle.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-worker-exit">
+    <term>
+     <constant>SWOOLE_WORKER_EXIT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Process exited.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-mutex">
+    <term>
+     <constant>SWOOLE_MUTEX</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Mutex lock.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-rwlock">
+    <term>
+     <constant>SWOOLE_RWLOCK</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      RW lock.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-spinlock">
+    <term>
+     <constant>SWOOLE_SPINLOCK</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Spin lock.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-coro-max-num-limit">
+    <term>
+     <constant>SWOOLE_CORO_MAX_NUM_LIMIT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Maximum number of coroutines created(PHP_INT_MAX).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-coro-init">
+    <term>
+     <constant>SWOOLE_CORO_INIT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine initializing.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-coro-waiting">
+    <term>
+     <constant>SWOOLE_CORO_WAITING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine yield.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-coro-running">
+    <term>
+     <constant>SWOOLE_CORO_RUNNING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine completed
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-coro-end">
+    <term>
+     <constant>SWOOLE_CORO_END</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine completed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-exit-in-coroutine">
+    <term>
+     <constant>SWOOLE_EXIT_IN_COROUTINE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Executing exit() function in coroutine.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-exit-in-server">
+    <term>
+     <constant>SWOOLE_EXIT_IN_SERVER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Executing exit() function in server.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-data">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_DATA</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 data frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-headers">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_HEADERS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 headers frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-priority">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_PRIORITY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 priority frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-rst-stream">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_RST_STREAM</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 rst stream frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-settings">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_SETTINGS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 settings frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-push-promise">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_PUSH_PROMISE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 push promise frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-ping">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_PING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 ping frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-goaway">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_GOAWAY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 goaway frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-window-update">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_WINDOW_UPDATE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 window update frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-type-continuation">
+    <term>
+     <constant>SWOOLE_HTTP2_TYPE_CONTINUATION</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 continuation frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-no-error">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_NO_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 no error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-protocol-error">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_PROTOCOL_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 protocol error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-internal-error">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_INTERNAL_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 internal error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-flow-control-error">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_FLOW_CONTROL_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 flow control error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-settings-timeout">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_SETTINGS_TIMEOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 setting timeout error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-stream-closed">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_STREAM_CLOSED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 stream closed error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-frame-size-error">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_FRAME_SIZE_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 frame size error error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-refused-stream">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_REFUSED_STREAM</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 refused stream error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-cancel">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_CANCEL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 cancel error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-compression-error">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_COMPRESSION_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 compression error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-connect-error">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_CONNECT_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 connect error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-enhance-your-calm">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_ENHANCE_YOUR_CALM</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 enhance your calm error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-inadequate-security">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_INADEQUATE_SECURITY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 inadequate security error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http2-error-http-1-1-required">
+    <term>
+     <constant>SWOOLE_HTTP2_ERROR_HTTP_1_1_REQUIRED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      HTTP2 require http1.1 error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http-client-estatus-connect-failed">
+    <term>
+     <constant>SWOOLE_HTTP_CLIENT_ESTATUS_CONNECT_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Connection timeout, the server is not listening on the port or there is a network failure,
+      you can read $errCode to get the specific network error code.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http-client-estatus-request-timeout">
+    <term>
+     <constant>SWOOLE_HTTP_CLIENT_ESTATUS_REQUEST_TIMEOUT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Request timeout, the server did not return a response within the specified timeout time.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http-client-estatus-server-reset">
+    <term>
+     <constant>SWOOLE_HTTP_CLIENT_ESTATUS_SERVER_RESET</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      After the client's request is sent, the server forcefully disconnects the connection.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-http-client-estatus-send-failed">
+    <term>
+     <constant>SWOOLE_HTTP_CLIENT_ESTATUS_SEND_FAILED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Client send failed (this constant is available in Swoole version >= v4.5.9,
+      for versions less than this, please use the status code).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-msgqueue-orient">
+    <term>
+     <constant>SWOOLE_MSGQUEUE_ORIENT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Swoole\Process::pop() will return specific data in the queue with the message type as process id + 1,
+      Swoole\Process::push() will add the type process id + 1 to the message.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-msgqueue-balance">
+    <term>
+     <constant>SWOOLE_MSGQUEUE_BALANCE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Swoole\Process::pop() will return the first message in the queue,
+      Swoole\Process::push() will not add a specific type to the message.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-tcp">
+    <term>
+     <constant>SWOOLE_HOOK_TCP</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based stream of TCP Socket type, including the most common ones like Redis, PDO, Mysqli.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-udp">
+    <term>
+     <constant>SWOOLE_HOOK_UDP</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based stream of UDP Socket type.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-unix">
+    <term>
+     <constant>SWOOLE_HOOK_UNIX</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based stream for Unix Stream Socket type.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-udg">
+    <term>
+     <constant>SWOOLE_HOOK_UDG</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based stream for UDG Stream Socket type.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-ssl">
+    <term>
+     <constant>SWOOLE_HOOK_SSL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based stream for SSL Stream Socket type.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-tls">
+    <term>
+     <constant>SWOOLE_HOOK_TLS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based stream for TLS Stream Socket type.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-stream-function">
+    <term>
+     <constant>SWOOLE_HOOK_STREAM_FUNCTION</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based stream_*() function.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-file">
+    <term>
+     <constant>SWOOLE_HOOK_FILE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based file operations.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-stdio">
+    <term>
+     <constant>SWOOLE_HOOK_STDIO</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based STDIO operations.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-sleep">
+    <term>
+     <constant>SWOOLE_HOOK_SLEEP</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based sleep operations, including sleep, usleep, time_nanosleep, time_sleep_until.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-proc">
+    <term>
+     <constant>SWOOLE_HOOK_PROC</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based proc* functions, including: proc_open, proc_close, proc_get_status, proc_terminate.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-curl">
+    <term>
+     <constant>SWOOLE_HOOK_CURL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for curl extension.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-native-curl">
+    <term>
+     <constant>SWOOLE_HOOK_NATIVE_CURL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for native curl extension.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-blocking-function">
+    <term>
+     <constant>SWOOLE_HOOK_BLOCKING_FUNCTION</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for blocking function, include gethostbyname, exec, shell_exec.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-sockets">
+    <term>
+     <constant>SWOOLE_HOOK_SOCKETS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for the sockets extension
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-pdo-pgsql">
+    <term>
+     <constant>SWOOLE_HOOK_PDO_PGSQL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for pdo_pgsql extension.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-pdo-odbc">
+    <term>
+     <constant>SWOOLE_HOOK_PDO_ODBC</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for pdo_odbc extension.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-pdo-oracle">
+    <term>
+     <constant>SWOOLE_HOOK_PDO_ORACLE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for pdo_oci extension.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-pdo-sqlite">
+    <term>
+     <constant>SWOOLE_HOOK_PDO_SQLITE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for pdo_sqlite extension.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-hook-all">
+    <term>
+     <constant>SWOOLE_HOOK_ALL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Coroutine-based for all block functions and extensions.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.socket-ecanceled">
+    <term>
+     <constant>SOCKET_ECANCELED</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Socket ecanceled error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.tcp-info">
+    <term>
+     <constant>TCP_INFO</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      TCP_INFO.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-timer-min-ms">
+    <term>
+     <constant>SWOOLE_TIMER_MIN_MS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Minimum supported timer interval (in milliseconds).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-timer-min-sec">
+    <term>
+     <constant>SWOOLE_TIMER_MIN_SEC</constant>
+     (<type>double</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Minimum supported timer interval (in seconds).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-timer-max-ms">
+    <term>
+     <constant>SWOOLE_TIMER_MAX_MS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Maximum supported timer interval (in milliseconds).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-timer-max-sec">
+    <term>
+     <constant>SWOOLE_TIMER_MAX_SEC</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Maximum supported timer interval (in seconds).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-status-connection">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_STATUS_CONNECTION</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      WebSocket is establishing a connection.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-status-handshake">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_STATUS_HANDSHAKE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      The WebSocket is in the handshake phase.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-status-active">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_STATUS_ACTIVE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Active WebSocket connection.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-status-closing">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_STATUS_CLOSING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      WebSocket connection is closed.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-opcode-continuation">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_OPCODE_CONTINUATION</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket continuation frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-opcode-text">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_OPCODE_TEXT</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket text frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-opcode-binary">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_OPCODE_BINARY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket binary frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-opcode-close">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_OPCODE_CLOSE</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket close frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-opcode-ping">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_OPCODE_PING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket ping frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-opcode-pong">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_OPCODE_PONG</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket pong frame.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-flag-fin">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_FLAG_FIN</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket FIN flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-flag-rsv1">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_FLAG_RSV1</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket RSV1 flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-flag-rsv2">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_FLAG_RSV2</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket RSV2 flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-flag-rsv3">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_FLAG_RSV3</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket RSV3 flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-flag-mask">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_FLAG_MASK</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket MASK flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-flag-compress">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_FLAG_COMPRESS</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Websocket COMPRESS flag.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-normal">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_NORMAL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Normal closure (connection completed successfully).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-going-away">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_GOING_AWAY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Endpoint is going away (e.g., browser tab closed).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-protocol-error">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_PROTOCOL_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Protocol error (malformed data frame).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-data-error">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_DATA_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Received unsupported data (e.g., binary when expecting text).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-status-error">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_STATUS_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      No status code provided (sent as a placeholder).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-abnormal">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_ABNORMAL</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Abnormal closure (no close frame received, e.g., TCP reset).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-message-error">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_MESSAGE_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Invalid data (e.g., non-UTF-8 text in a text frame).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-policy-error">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_POLICY_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Policy violation (e.g., unauthorized action).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-message-too-big">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_MESSAGE_TOO_BIG</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Message too large (exceeds server’s max size).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-extension-missing">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_EXTENSION_MISSING</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Client didn’t negotiate required extensions.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-server-error">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_SERVER_ERROR</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server encountered an error.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-close-service-restart">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_CLOSE_SERVICE_RESTART</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Server is restarting (temporary condition).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-try-again-later">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_TRY_AGAIN_LATER</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Temporary server overload (client should retry).
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-bad-gateway">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_BAD_GATEWAY</constant>
+     (<type>int</type>)
+    </term>
+    <listitem>
+     <simpara>
+      Invalid response from upstream server.
+     </simpara>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="constant.swoole-websocket-close-tls">
+    <term>
+     <constant>SWOOLE_WEBSOCKET_CLOSE_TLS</constant>
      (<type>int</type>)
     </term>
     <listitem>
      <simpara>
-      None log.
-      Available as of swoole 4.3.2.
+      TLS handshake failed (used when HTTPS fails).
      </simpara>
     </listitem>
    </varlistentry>
@@ -494,23 +3852,23 @@
  </para>
 </appendix>
 
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-indent-tabs-mode:nil
-sgml-parent-document:nil
-sgml-default-dtd-file:"~/.phpdoc/manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->
+ <!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ indent-tabs-mode:nil
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"~/.phpdoc/manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.