using System.Diagnostics; using System.Text; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; using WebApplication1.Models; namespace WebApplication1.Controllers { [Route("api/[controller]/[action]")] public class HomeController : Controller { private readonly ILogger _logger; private readonly IHubContext _hubContext; public HomeController(ILogger logger,IHubContext tui) { _logger = logger; this._hubContext = tui; } public IActionResult Index() { return View(); } [HttpPost()] public IActionResult getindex() { _hubContext.Clients.All.SendAsync("ReceiveMessage", "aaaaaaaaaaaaaaaa"); return Json("11111111111"); } public IActionResult Privacy() { return View(); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } [HttpGet()] public async Task StreamSSEvents() { HttpContext.Response.ContentType = "text/event-stream"; HttpContext.Response.Headers.Add("Cache-Control", "no-cache"); HttpContext.Response.Headers.Add("Connection", "keep-alive"); for (int i = 0; i < 10; i++) { //var data = new //{ // id = Guid.NewGuid().ToString(), // eventmm = "111", // data = "22222" //}; //var responseData = $"id: {data.id} "; //responseData += $"event: {data.eventmm} "; //responseData += $"data: 111111111111111 "; var responseData = "aaaa"+i.ToString(); await HttpContext.Response.WriteAsync(responseData, Encoding.UTF8); await Task.Delay(2000); // 等待2秒再发送下一个事件 } } } }