.net 下SSE使用
HTML5有一个Server-Sent Events(SSE)功能,允许服务端推送数据到客户端。(通常叫数据推送),基于数据推送是这样的,当数据源有新数据,它马上发送到客户端,不需要等待客户端请求。这些新数据可能是最新闻,最新股票行情,来自朋友的聊天信息,天气预报等。
所谓SSE,就是浏览器向服务器发送一个HTTP请求,然后服务器不断单向地向浏览器推送“信息”(message)。这种信息在格式上很简单,就是“信息”加上前缀“data: ”,然后以“\n\n”结尾(既是所谓的事件流:通过一个持久的HTTP 响应发送,这个响应的MIME 类型为text/event-stream。响应的格式是纯文本)。
html:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<body>
<ul id="test"></ul>
<script>
var test = $("#test");
if (typeof (EventSource != "undefined")) {
var es = new EventSource("/home/data");
es.onmessage = function (e) {
test.append("<li>" + e.data + "</li>");
}
} else {
$("body").append("不支持EES");
}
</script>
</body>
</html>
.net
public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } public void data() { HttpContext.Response.ContentType = "text/event-stream"; HttpContext.Response.CacheControl = "no-cache"; HttpContext.Response.Write("data:" + DateTime.Now +"\n\n"); HttpContext.Response.Flush(); } }
浙公网安备 33010602011771号