[HttpGet]
public async Task<IActionResult> SseExample()
{
// 请求头
Response.Headers.Add("Content-Type", "text/event-stream");
Response.Headers.Add("Cache-Control", "no-cache");
Response.Headers.Add("Connection", "keep-alive");
// 假设不断得到新数据
for (int i = 0; i < 10; i++)
{
// 每个数据参照 SSE 返回数据格式进行组装
var content = "event: message\n"
+ "data: {\"color\":\"66ccff\"}\n\n";
// 立刻写入响应
await Response.WriteAsync(content);
await Response.Body.FlushAsync();
}
// 结束
return new EmptyResult();
}