6.35Server-Sent Events 事件处理程序
创建于 2026 年 8 月 17 日约 1 分钟读完
IHttpServerSentEventsEventHandler 接口允许您定义接收服务器 Server-Sent Events 推送事件的预处理操作。通过实现该接口,您可以创建自定义的 Server-Sent Events 事件处理程序,例如 CustomServerSentEventsEventHandler 类:
public class CustomServerSentEventsEventHandler : IHttpServerSentEventsEventHandler{ // 用于在与事件源的连接打开时的操作 void OnOpen(); // 用于在从事件源接收到数据时的操作 Task OnMessageAsync(ServerSentEventsData serverSentEventsData, CancellationToken cancellationToken); // 用于在事件源连接未能打开时的操作 void OnError(Exception exception);}要在应用程序中启用此处理程序,请在 Startup.cs 或 Program.cs 文件中注册 CustomServerSentEventsEventHandler 服务:
services.TryAddSingleton<CustomServerSentEventsEventHandler>();接下来,您可以在构建 HTTP 请求时指定此处理程序:
HttpRequestBuilder.ServerSentEvents("https://localhost:7044/HttpRemote/Events" , async (data, token) => { Console.WriteLine(data.Data); await Task.CompletedTask; }) .SetEventHandler<CustomServerSentEventsEventHandler>();HttpRequestBuilder.ServerSentEvents("https://localhost:7044/HttpRemote/Events" , async (data, token) => { Console.WriteLine(data.Data); await Task.CompletedTask; }) .SetEventHandler(typeof(CustomServerSentEventsEventHandler)); // 使用类型的方式