• 大小: 15.28M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2020-12-26
  • 语言: C#
  • 标签: HTML5  SSE  webapi  

资源简介

亲测通过,可以实时将消息发送至客户端,几乎零延时。。。,很快

不像ajax一样,一直刷。。。


最近在项目开发中使用了一种比较新的技术,SSE,即 Server-Send Event,使用它从服务器向浏览器推送数据。

传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“通知”,这要比浏览器按时向服务器查询(polling)更有效率。

服务器发送事件(Server-Sent Events,简称SSE)就是为了解决这个问题,而提出的一种新API,部署在EventSource对象上。目前,除了IE,其他主流浏览器都支持。

简单说,所谓SSE,就是浏览器向服务器发送一个HTTP请求,然后服务器不断单向地向浏览器推送“信息”(message)。这种信息在格式上很简单,就是“信息”加上前缀“data: ”,然后以“\n\n”结尾。

SSE与WebSocket有相似功能,都是用来建立浏览器与服务器之间的通信渠道。两者的区别在于:

WebSocket是全双工通道,可以双向通信,功能更强;SSE是单向通道,只能服务器向浏览器端发送。

WebSocket是一个新的协议,需要服务器端支持;SSE则是部署在HTTP协议之上的,现有的服务器软件都支持。

SSE是一个轻量级协议,相对简单;WebSocket是一种较重的协议,相对复杂。

SSE默认支持断线重连,WebSocket则需要额外部署。

SSE支持自定义发送的数据类型。

从上面的比较可以看出,两者各有特点,适合不同的场合。

提示:除了IE之外,几乎所有浏览器均支持 SSE

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace Strathweb.HTML5push
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode 
    // visit http://go.microsoft.com/?linkId=9394801

    public class WebApiApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute(“{resource}.axd/{*pathInfo}“);

            routes.MapHttpRoute(
                name: “DefaultApi“
                routeTe

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-06 19:31  .nuget\
     文件         302  2012-05-06 19:31  .nuget\packages.config
     目录           0  2016-12-31 23:16  aspnetwebapi-html5push\
     文件        1275  2016-12-31 20:12  aspnetwebapi-html5push.sln
     文件       51712  2012-05-06 19:31  aspnetwebapi-html5push.suo
     目录           0  2016-12-31 19:57  aspnetwebapi-html5push\App_Data\
     文件       14386  2016-12-31 23:16  aspnetwebapi-html5push\aspnetwebapi-html5push.csproj
     文件        1168  2016-12-31 23:16  aspnetwebapi-html5push\aspnetwebapi-html5push.csproj.user
     目录           0  2016-12-31 20:15  aspnetwebapi-html5push\bin\
     文件      785184  2012-05-06 19:31  aspnetwebapi-html5push\bin\Entityframework.dll
     文件      821283  2012-05-06 19:31  aspnetwebapi-html5push\bin\Entityframework.xml
     文件       45416  2012-05-06 19:31  aspnetwebapi-html5push\bin\Microsoft.Web.Infrastructure.dll
     文件       10240  2016-12-31 23:16  aspnetwebapi-html5push\bin\MvcApplication2-4.dll
     文件        4009  2016-12-31 23:16  aspnetwebapi-html5push\bin\MvcApplication2-4.dll.config
     文件       19968  2016-12-31 23:16  aspnetwebapi-html5push\bin\MvcApplication2-4.pdb
     文件      374272  2012-05-06 19:31  aspnetwebapi-html5push\bin\Newtonsoft.Json.dll
     文件     1025536  2012-05-06 19:31  aspnetwebapi-html5push\bin\Newtonsoft.Json.pdb
     文件      406212  2012-05-06 19:31  aspnetwebapi-html5push\bin\Newtonsoft.Json.xml
     文件       66408  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Json.dll
     文件       59669  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Json.xml
     文件      181856  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Net.Http.dll
     文件      165472  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Net.Http.Formatting.dll
     文件      116511  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Net.Http.Formatting.xml
     文件       15456  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Net.Http.WebRequest.dll
     文件        5011  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Net.Http.WebRequest.xml
     文件      153934  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Net.Http.xml
     文件      138352  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Web.Helpers.dll
     文件       70262  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Web.Helpers.xml
     文件      364128  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Web.Http.dll
     文件       66144  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Web.Http.WebHost.dll
     文件        7003  2012-05-06 19:31  aspnetwebapi-html5push\bin\System.Web.Http.WebHost.xml
............此处省略471个文件信息

评论

共有 条评论