TsgcWebSocketHTTPServer › 事件

TsgcWebSocketHTTPServer 事件

可处理的事件按用途分组,后跟完整的字母顺序列表。

生命周期

名称描述
OnStartup服务器启动并准备好接受连接后触发。
OnShutdown服务器停止后且不再接受连接时触发。
OnTCPConnect在客户端在 TCP 层连接之后、WebSocket 握手之前触发,因此可以接受或拒绝连接。
OnConnect每次与客户端建立 WebSocket 连接时触发。
OnDisconnect每次与客户端的 WebSocket 连接断开时触发。
OnHandshake在服务器端对握手进行评估后、发送响应之前触发。
OnError每当发生 WebSocket 协议错误(如格式错误的握手)时触发。
OnException当处理客户端连接时引发未处理的异常,则触发此事件。
OnUnknownProtocol当第一条消息不匹配已知协议时触发,可以接受或拒绝连接。
OnUnknownAuthentication当启用身份验证且服务器无法识别身份验证方法时触发。

数据

名称描述
OnMessage每次客户端发送文本消息且服务器接收到时触发。
OnBinary每次客户端发送二进制消息且服务器收到时触发。
OnFragmented当接收到消息的分片时触发(仅当 Options.FragmentedMessages 为 frgAll 或 frgOnlyFragmented 时)。

HTTP

名称描述
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 时触发,以便应用程序决定如何响应。

HTTP 上传

名称描述
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当第一条消息不匹配已知协议时触发,可以接受或拒绝连接。