最近有时间,打算看看SignalR,顺便了解一下Server Sent Events。

Controller

输出的数据格式为:data:[数据]\n\n。输出的数据尝试8000多字符也没问题,具体的上限就没试了。但是如果数据里也包含\n\n的话,数据就会被截断。

 public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
} //Server-Sent Event
public void Sse()
{
Random random = new Random(); //设置HTTP MIME 类型,不缓存页面
Response.ContentType = "text/event-stream";
Response.CacheControl = "no-cache"; while (Response.IsClientConnected)
{
try
{
string data = SseData(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " from http://www.cnblogs.com/ainijiutian/");
Response.Write(data);
Response.Flush(); System.Threading.Thread.Sleep(random.Next(, ));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}; Response.End();
Response.Close();
} //SSE data
private string SseData(string data)
{
return "data:" + data + "\n\n";
}
}

View

 @{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div id="container">
</div>
<script>
if (typeof (EventSource) !== "undefined")
{
var container = document.getElementById("container");
var es = new EventSource("/home/sse");
es.onopen = function (event) {
container.innerHTML += "open<br/>";
}
es.onmessage = function (event) {
container.innerHTML += event.data + "<br/>";
};
es.onerror = function (event) {
container.innerHTML += "error<br/>";
es.close();
}
}
else
{
console.log("一边儿玩儿去");
}
</script>
</body>
</html>

运行如下:

[ASP.NET MVC] Real-time之HTML5 服务器发送事件(server-sent event)的更多相关文章

  1. HTML5 服务器发送事件(Server-Sent Events)

    沈阳SEO:HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获 ...

  2. HTML5: HTML5 服务器发送事件(Server-Sent Events)

    ylbtech-HTML5: HTML5 服务器发送事件(Server-Sent Events) 1.返回顶部 1. HTML5 服务器发送事件(Server-Sent Events) HTML5 服 ...

  3. HTML5服务器发送事件(Server-Send Events)

    HTML5服务器发送事件是允许获得来自服务器的更新. server-sent事件-单向传递消息,表示网页自动获取来自服务器的更新. 其中有一个重要的对象,eventsource对象是用来接收服务器发送 ...

  4. 关于HTML5服务器发送事件(SSE)

    最近在看 W3School 上关于 HTML 5 的教程.在看到 HTML 5 服务器发送事件 ( SSE, server-sent event ) 时,没怎么弄明白示例代码是怎么回事,寻找其他教程, ...

  5. HTML5 服务器发送事件(Server-Sent Events)介绍

    w3cschool菜鸟教程 Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新. 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新 ...

  6. HTML5学习笔记(七)HTML5 服务器发送事件(Server-Sent Events)

    Server-Sent 事件指的是网页自动获取来自服务器的更新. 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新.通过服务器发送事件,更新能够自动到达. EventSource 对象用于接 ...

  7. Server-Sent Events(HTML5 服务器发送事件)

    Server-Sent Events简介 Server-Sent Events(SSE)用于网页自动获取服务器上更新的数据,它是一个实时性的机制. 实时性获取数据的解决方案 对于某些需要实时更新的数据 ...

  8. HTML5 服务器发送事件

    单向传输:服务器端——>客户端   作用:传回的能每过3s重新刷新一遍.从而能过跟数据库同步,与ajax配合使用   一.客户端写法 必须的用 message 方法   JSON.parse() ...

  9. HTML5支持服务器发送事件(Server-Sent Events)-单向消息传递数据推送(C#示例)

    传统的WEB应用程序通信时的简单时序图: 现在Web App中,大都有Ajax,是这样子: HTML5有一个Server-Sent Events(SSE)功能,允许服务端推送数据到客户端.(通常叫数据 ...

随机推荐

  1. Ubuntu系统的安装与使用 深度音乐播放器

    1.添加深度音乐播放器的ppa源并更新源缓存 sudo add-apt-repository ppa:noobslab/deepin-sc  sudo apt-get update 2. 安装需要的依 ...

  2. 初用idea建立javaweb遇到的问题与心得

    1.直接用idea建立的web项目,其自动生成的web.xml里version=3.1,这样的话建立servlet-name等标签会报错(因为3.1不支持这种做法,更提倡用注解的办法),解决办法是将w ...

  3. NGUI渲染流程

    1 渲染流程 NGUI的渲染流程其实就是把Widget组件生成Mesh所需要的缓存数据,然后生成对应的DrallCall组合对应数据,生成渲染需要的Mesh数据,提交渲染. Widget(数据) UI ...

  4. selenium python的使用(二)

    1.selenium获取到的信息是 把页面加载完毕之后 获取异步加载的html源码 html=driver.find_element_by_xpath("/html").get_a ...

  5. tar命令实用介绍

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

  6. Python —基本数据类型

    运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31- ...

  7. ca证书校验用户证书

    openssl verify -CAfile ca.cer server.crt 现在很多网站和服务都使用了HTTPS进行链路加密.防止信息在传输中间节点被窃听和篡改.HTTPS的启用都需要一个CA证 ...

  8. iOS APP开发的小知识(分享)

          亿合科技小编发现从2007年第一款智能手机横空出世,由此开启了人们的移动智能时代.我们从一开始对APP的陌生,到现在的爱不释手,可见APP开发的出现对我们的生活改变有多巨大.而iOS AP ...

  9. 注解的方式搭建springmvc步骤

    1.cope   jar包到lib中 2.配置web.xml文件 <servlet> <servlet-name>springmvc</servlet-name> ...

  10. JavaScript在A页面判断B页面加载完毕(iframe load)

    今天遇到一个需求,在A页面上判断B页面是否加载完毕(B页面是第三方页面),加载完毕时隐藏loading动画... 而平时我们一般做的事是在B页面上判断B页面是否加载完毕,进行操作. if(docume ...