支持


不支持IE

个人理解说明


个人理解:这种消息推送方式不太推广,原因有以下三点~~~`我怎么老是学这些自己认为不会推广的东西呢~汗

  • 在.net中,framework4.5以上就可以由SignalR来实现消息推送。

  • 而这种h5的消息推送,是页面基于WebSocket不断轮训后台才打到目的,本质和Ajax设置定时器不断轮训一个道理,推广还有待考察。

  • 由于IE的不支持 你懂的~如果要实现IE的支持,需要采用其他的方式:XDomainRequest代替XMLHttpRequest。具体参考http://www.ibm.com/developerworks/cn/web/1307_chengfu_serversentevent/


页面代码


<!DOCTYPE html >
<html>
<head lang="zh-CN">
<title></title>
<script type="text/javascript">
window.onload = EventPush;
function EventPush() {
if (typeof EventSource != "undefined") {
var source = new EventSource("MsgPush.ashx");
//e.data在onopen事件里是undefined
source.onopen = function (e) {
document.getElementById("result").innerHTML += "<br/>" + "onopen" + "<br/>";
};
source.onmessage = function (e) {
document.getElementById("result").innerHTML += "onmessage" + e.data + "<br/>" + e.target.url + "<br/>" + e.target.readyState + "<br/>";
};
//e.data在onerror事件里是undefined
source.onerror = function (e) {
document.getElementById("result").innerHTML += "onerror" + "<br/>";
}; }
else {
document.getElementById("result").innerHTML = "不支持您老的浏览器~"
}
}
</script>
</head>
<body>
<div id="result">
</div>
</body>
</html>

Asp.net 一般处理程序


using System;
using System.Web;
namespace accortion
{
/// <summary>
/// MsgPush 的摘要说明
/// </summary>
public class MsgPush : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
//设置类型
context.Response.ContentType = "text/event-stream";
//Provisional headers are shown
//Accept:text/event-stream
//Cache-Control:no-cache
//context.Response.Headers.Set("Cache-Control", "no-cache"); //这种不行 //禁止页面缓存的可行2种形式
context.Response.Cache.SetNoStore();//Cache-Control:private, no-store//可以
// TimeSpan TS = new TimeSpan(0);
// context.Response.Cache.SetMaxAge(TS);//Cache-Control:private, max-age=0//可以
string time = "data:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\n\n";//数据前面必须以data:开头,后面必须有两个换行
context.Response.Write(time);
} public bool IsReusable
{
get
{
return false;
}
}
}
}

参考


http://www.ibm.com/developerworks/cn/web/1307_chengfu_serversentevent/

https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events

http://www.codeguru.com/csharp/csharp/cs_internet/displaying-real-time-data-using-html5-and-asp.net.htm

html5:服务器事件推送(server-sent events)Asp.net的更多相关文章

  1. HTML5服务器消息推送(java版)

    前端代码(html5.html): <html> <meta http-equiv="Content-Type" content="text/html; ...

  2. HTTP/2之服务器推送(Server Push)最佳实践

    商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处.   WeTest 导读 HTTP/1.X出色地满足互联网的普遍访问需求,但随着互联网的不断发展,其性能越来越成为瓶颈.IETF在2015 ...

  3. 脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)

    本文原作者阮一峰,作者博客:ruanyifeng.com. 1.前言 新一代HTTP/2 协议的主要目的是为了提高网页性能(有关HTTP/2的介绍,请见<从HTTP/0.9到HTTP/2:一文读 ...

  4. javascript跨域传递消息 / 服务器实时推送总结

    参考文档,下面有转载[非常好的两篇文章]: http://www.cnblogs.com/loveis715/p/4592246.html [跨源的各种方法总结] http://kb.cnblogs. ...

  5. 用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)

    本文讲述使用Senparc.Weixin框架来快速处理各种接收事件推送.这里的消息指的是传统的微信公众平台消息交互,微信用户向公众号发送消息后,公众号回复消息给微信用户.包括以下类型: 1 subsc ...

  6. C#微信公众号开发系列教程五(接收事件推送与消息排重)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  7. HTML5 WebSocket 实时推送信息测试demo

    测试一下HTML5的websocket功能,实现了客户端→服务器实时推送信息到客户端,包括推送图片: websocket实现MessageInbound类 onTextMessage()/onBina ...

  8. C#微信公众号开发系列教程(接收事件推送与消息排重)

    微信服务器在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次.这样的话,问题就来了.有这样一个场景:当用户关注微信账号时,获取当前用户信息,然后将信息写到数据库中.类似于pc端网站的注册.可 ...

  9. 微信公众号开发C#系列-7、消息管理-接收事件推送

    1.概述 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息.其中,某些事件推送在发生后,是允许 ...

随机推荐

  1. Deeplink做不出效果,那是你不会玩!

    最近魔Sir听一些有些同学说之前用过Deeplink,但效果并没有想象中的那么好,在了解了小伙伴的使用场景后,魔Sir觉得有必要出这么篇东西告诉大家,Deeplink效果差,那是因为你不会玩! 对于已 ...

  2. 今天连续几次被其他电脑客户端踢下线,也不知是否是ip冲突

    可能是利用ip然后我的网络也没有关掉共享,其次就是远程开启了一个叫做"学生端"的应用,好在我改密码连续两次改的快

  3. spring的IOC和AOP

     spring的IOC和AOP 1.解释spring的ioc? 几种注入依赖的方式?spring的优点? IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是 ...

  4. C# Window Form播放音乐的4种方式

    C#播放背景音乐通常有四种方式: 1.播放系统事件声音 2.使用System.Media.SoundPlayer播放wav------------------------仅仅是对波形音乐 3.使用MC ...

  5. Xamarin Studio支持TypeScript开发

    之前谈到"TypeScript的崛起",今天推荐的文章又再次支持了这一观点--Xamarin Studio也开始支持TypeScript的开发. 一个语言是否能够崛起,很重要的一个 ...

  6. Word2013对公式处理:样式、自动编号、交叉引用

    因快写毕业论文,专门研究了一下Word2013对公式的处理,有一点小心得,记在这里. 文章中公式展示的预期效果是:公式居中,尾端有编号,同时在文章中可以实现引用.实现该效果有很多方法,这里就说一种,其 ...

  7. ODTwithODAC认识与安装图解

    ODTwithODAC认识 ODTwithODAC是用.Net 开发工具时,使用Oracle数据库时, 启连接作用. 安装完ODTwithODAC之后,一般需要安装 Oracle 客户端(比如win3 ...

  8. 【codevs1191】数轴染色 线段树 区间修改+固定区间查询

    [codevs1191]数轴染色 2014年2月15日4317 题目描述 Description 在一条数轴上有N个点,分别是1-N.一开始所有的点都被染成黑色.接着我们进行M次操作,第i次操作将[L ...

  9. uva 11380(最大流+拆点)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36707 思路:根据题意拆点建图即可. #include<io ...

  10. android 定时器的实现

    在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService了. 实验1:使用Java.util.Timer. 在onStart()创创建Time ...