6.35Server-Sent Events 事件处理程序

创建于 2026 年 8 月 17 日约 1 分钟读完

IHttpServerSentEventsEventHandler 接口允许您定义接收服务器 Server-Sent Events 推送事件的预处理操作。通过实现该接口,您可以创建自定义的 Server-Sent Events 事件处理程序,例如 CustomServerSentEventsEventHandler 类:

cs
public class CustomServerSentEventsEventHandler : IHttpServerSentEventsEventHandler{    // 用于在与事件源的连接打开时的操作    void OnOpen();    // 用于在从事件源接收到数据时的操作    Task OnMessageAsync(ServerSentEventsData serverSentEventsData, CancellationToken cancellationToken);    // 用于在事件源连接未能打开时的操作    void OnError(Exception exception);}

要在应用程序中启用此处理程序,请在 Startup.csProgram.cs 文件中注册 CustomServerSentEventsEventHandler 服务:

cs
services.TryAddSingleton<CustomServerSentEventsEventHandler>();

接下来,您可以在构建 HTTP 请求时指定此处理程序:

cs
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));    // 使用类型的方式