最近有时间,打算看看SignalR,顺便了解一下Server Sent Events。
Controller
输出的数据格式为:data:[数据]\n\n。输出的数据尝试8000多字符也没问题,具体的上限就没试了。但是如果数据里也包含\n\n的话,数据就会被截断。
HomeController : Controller 2 { ActionResult Index() 5 { 6 return View(); 7 } Sse() 11 { 12 Random random = new Random(); Response.ContentType = ; ; (Response.IsClientConnected) 19 { { ) + ); 23 Response.Write(data); 24 Response.Flush(); 25 26 System.Threading.Thread.Sleep(random.Next(500, 5000)); 27 } 28 catch (Exception ex) 29 { 30 System.Diagnostics.Debug.WriteLine(ex.Message); 31 } 32 }; 33 34 Response.End(); 35 Response.Close(); 36 } SseData(string data) 40 { + data + ; 42 } 43 }
View
1 @{ 2 Layout = null; 3 } Index) 17 { ); ); (event) { ; 22 } (event) { ; 25 }; (event) { ; 28 es.close(); 29 } 30 } { ); 34 }
运行如下: