可处理的事件按用途分组,后跟完整的字母顺序列表。
| 名称 | 描述 |
|---|---|
| OnStartup | 服务器启动并准备好接受连接后触发。 |
| OnShutdown | 服务器停止后且不再接受连接时触发。 |
| OnTCPConnect | 在客户端在 TCP 层连接之后、WebSocket 握手之前触发,因此可以接受或拒绝连接。 |
| OnConnect | 每次与客户端建立 WebSocket 连接时触发。 |
| OnDisconnect | 每次与客户端的 WebSocket 连接断开时触发。 |
| OnHandshake | 在服务器端对握手进行评估后、发送响应之前触发。 |
| OnError | 每当发生 WebSocket 协议错误(如格式错误的握手)时触发。 |
| OnException | 当处理客户端连接时引发未处理的异常,则触发此事件。 |
| OnUnknownProtocol | 当第一条消息不匹配已知协议时触发,可以接受或拒绝连接。 |
| OnUnknownAuthentication | 当启用身份验证且服务器无法识别身份验证方法时触发。 |
| 名称 | 描述 |
|---|---|
| OnMessage | 每次客户端发送文本消息且服务器接收到时触发。 |
| OnBinary | 每次客户端发送二进制消息且服务器收到时触发。 |
| OnFragmented | 当接收到消息的分片时触发(仅当 Options.FragmentedMessages 为 frgAll 或 frgOnlyFragmented 时)。 |
| 名称 | 描述 |
|---|---|
| OnBeforeCommand | 在 OnCommandGet 或 OnCommandOther 之前触发,以便对请求进行筛查、授权或直接以 401 响应短路。 |
| OnCommandGet | 当 HTTP 服务器收到 GET、POST 或 HEAD 请求时触发,以便应用程序构建响应。 |
| OnCommandOther | 当 HTTP 服务器收到 GET、POST 或 HEAD 以外的方法(PUT、DELETE、OPTIONS、PATCH……)时触发。 |
| OnBeforeForwardHTTP | 在调度 HTTP 请求之前触发,以便将其转发(反向代理)到另一台 HTTP 服务器。 |
| OnAfterForwardHTTP | 在 HTTP 请求转发后触发,以便应用程序可以检查结果或上游服务器返回的错误。 |
| OnHTTP2BeforeAsyncRequest | 在 HTTP/2 请求入队之前触发,以便应用程序选择在线程池还是连接线程中运行该请求。 |
| 名称 | 描述 |
|---|---|
| OnCreateSession | 当 HTTP 服务器需要创建新会话时触发,以便应用程序提供自定义 TIdHTTPSession 实例。 |
| OnSessionStart | 当 HTTP 会话启动并添加到 SessionList 时触发。 |
| OnSessionEnd | 当 HTTP 会话关闭时触发,无论是显式关闭还是 SessionTimeout 超时后关闭。 |
| OnInvalidSession | 当 HTTP 请求携带未知或已过期的会话 ID 时触发,以便应用程序决定如何响应。 |
| 名称 | 描述 |
|---|---|
| OnHTTPUploadBeforeSaveFile | 在从 multipart/form-data 上传中提取的文件保存到磁盘之前触发,以便自定义文件名和路径。 |
| OnHTTPUploadAfterSaveFile | 当从 multipart/form-data 上传中提取的文件已保存到磁盘后触发。 |
| OnHTTPUploadReadInput | 当 multipart/form-data 解码器读取非文件输入字段时触发,以便捕获其值。 |
| OnHTTPUploadBeforeCreatePostStream | 在读取请求头并在创建 POST 流之前触发,以便接受或拒绝上传。 |
| 名称 | 描述 |
|---|---|
| OnBeforeHeartBeat | 在每次 HeartBeat ping 之前触发,以便应用程序实现自定义保活逻辑。 |
| OnLoadBalancerConnect | 当服务器连接到负载均衡服务器时触发。 |
| OnLoadBalancerDisconnect | 当服务器从负载均衡器服务器断开连接时触发。 |
| OnLoadBalancerError | 当与负载均衡器服务器通信发生错误时触发。 |
| 名称 | 描述 |
|---|---|
| OnAuthentication | 当启用身份验证时触发,以便应用程序检查用户名和密码并接受或拒绝连接。 |
| OnSSLGetHandler | 在创建 SSL 处理程序之前触发,以便提供自定义服务器端处理程序实例。 |
| OnSSLAfterCreateHandler | 在 SSL 处理器创建后触发,以便自定义其属性。 |
| OnSSLALPNSelect | 在启用 ALPN 的握手期间触发,以便应用程序可以选择协商哪个协议。 |
| OnSSLVerifyPeer | 当启用 VerifyCertificate 且客户端提交证书待接受或拒绝时触发。 |
| 名称 | 描述 |
|---|---|
| OnAfterForwardHTTP | 在 HTTP 请求转发后触发,以便应用程序可以检查结果或上游服务器返回的错误。 |
| OnAuthentication | 当启用身份验证时触发,以便应用程序检查用户名和密码并接受或拒绝连接。 |
| OnBeforeCommand | 在 OnCommandGet 或 OnCommandOther 之前触发,以便对请求进行筛查、授权或直接以 401 响应短路。 |
| OnBeforeForwardHTTP | 在调度 HTTP 请求之前触发,以便将其转发(反向代理)到另一台 HTTP 服务器。 |
| OnBeforeHeartBeat | 在每次 HeartBeat ping 之前触发,以便应用程序实现自定义保活逻辑。 |
| OnBinary | 每次客户端发送二进制消息且服务器收到时触发。 |
| OnCommandGet | 当 HTTP 服务器收到 GET、POST 或 HEAD 请求时触发,以便应用程序构建响应。 |
| OnCommandOther | 当 HTTP 服务器收到 GET、POST 或 HEAD 以外的方法(PUT、DELETE、OPTIONS、PATCH……)时触发。 |
| OnConnect | 每次与客户端建立 WebSocket 连接时触发。 |
| OnCreateSession | 当 HTTP 服务器需要创建新会话时触发,以便应用程序提供自定义 TIdHTTPSession 实例。 |
| OnDisconnect | 每次与客户端的 WebSocket 连接断开时触发。 |
| OnError | 每当发生 WebSocket 协议错误(如格式错误的握手)时触发。 |
| OnException | 当处理客户端连接时引发未处理的异常,则触发此事件。 |
| OnFragmented | 当接收到消息的分片时触发(仅当 Options.FragmentedMessages 为 frgAll 或 frgOnlyFragmented 时)。 |
| OnHandshake | 在服务器端对握手进行评估后、发送响应之前触发。 |
| OnHTTP2BeforeAsyncRequest | 在 HTTP/2 请求入队之前触发,以便应用程序选择在线程池还是连接线程中运行该请求。 |
| OnHTTPUploadAfterSaveFile | 当从 multipart/form-data 上传中提取的文件已保存到磁盘后触发。 |
| OnHTTPUploadBeforeCreatePostStream | 在读取请求头并在创建 POST 流之前触发,以便接受或拒绝上传。 |
| OnHTTPUploadBeforeSaveFile | 在从 multipart/form-data 上传中提取的文件保存到磁盘之前触发,以便自定义文件名和路径。 |
| OnHTTPUploadReadInput | 当 multipart/form-data 解码器读取非文件输入字段时触发,以便捕获其值。 |
| OnInvalidSession | 当 HTTP 请求携带未知或已过期的会话 ID 时触发,以便应用程序决定如何响应。 |
| OnLoadBalancerConnect | 当服务器连接到负载均衡服务器时触发。 |
| OnLoadBalancerDisconnect | 当服务器从负载均衡器服务器断开连接时触发。 |
| OnLoadBalancerError | 当与负载均衡器服务器通信发生错误时触发。 |
| OnMessage | 每次客户端发送文本消息且服务器接收到时触发。 |
| OnSessionEnd | 当 HTTP 会话关闭时触发,无论是显式关闭还是 SessionTimeout 超时后关闭。 |
| OnSessionStart | 当 HTTP 会话启动并添加到 SessionList 时触发。 |
| OnShutdown | 服务器停止后且不再接受连接时触发。 |
| OnSSLAfterCreateHandler | 在 SSL 处理器创建后触发,以便自定义其属性。 |
| OnSSLALPNSelect | 在启用 ALPN 的握手期间触发,以便应用程序可以选择协商哪个协议。 |
| OnSSLGetHandler | 在创建 SSL 处理程序之前触发,以便提供自定义服务器端处理程序实例。 |
| OnSSLVerifyPeer | 当启用 VerifyCertificate 且客户端提交证书待接受或拒绝时触发。 |
| OnStartup | 服务器启动并准备好接受连接后触发。 |
| OnTCPConnect | 在客户端在 TCP 层连接之后、WebSocket 握手之前触发,因此可以接受或拒绝连接。 |
| OnUnknownAuthentication | 当启用身份验证且服务器无法识别身份验证方法时触发。 |
| OnUnknownProtocol | 当第一条消息不匹配已知协议时触发,可以接受或拒绝连接。 |