iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >服务器推送事件的示例分析
  • 937
分享到

服务器推送事件的示例分析

2024-04-02 19:04:59 937人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“服务器推送事件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“服务器推送事件的示例分析”这篇文章吧。

这篇文章主要为大家展示了“服务器推送事件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“服务器推送事件的示例分析”这篇文章吧。

服务器推送事件(Server-sent Events)是基于websocket 协议的一种服务器向客户端发送事件&数据的单向通讯。目前所有主流浏览器均支持服务器发送事件,当然除了 Internet Explorer 。2333...

WEBSocket 协议是继Http协议后又一服务器客户端通讯协议,不同于HTTP单纯的客户端请求服务器响应单向通讯模式的是它支持了服务端客户端的双向通讯。

Server-sent Events 的使用

Server-sent Events(以下简称SSE)作为服务器=>客户端通讯方式那必然客户端要有相应的服务地址和响应方法,服务端要有相应的数据发送方法;

客户端JS代码

 H5页面需添加如下js代码:     <script>         if (typeof (EventSource) !== "undefined") {             //推送服务接口地址 var eventSource = new EventSource("http://localhost:2242/webservice/ServerSent/SentNews");             //当通往服务器的连接被打开 eventSource.onopen = function () {                 console.log("连接打开...");             }              //当错误发生  eventSource.onerror= function (e) {                  console.log(e);              };              //当接收到消息,此事件为默认事件  eventSource.onmessage = function (event) {                  console.log("onmessage...");               eventSource.close()//关闭SSE链接
              };              //服务器推送sentMessage事件  eventSource.addEventListener('sentMessage', function (event) { 
                  var data = eval('('+event.data+')');//服务器端推送的数据,eval装换JSON对象  var origin = event.origin;//服务器 URL 的域名部分,即协议、域名和端口,表示消息的来源。  var lastEventId = event.lastEventId;////数据的编号,由服务器端发送。如果没有编号,这个属性为空。  //此处根据需求编写业务逻辑  console.log(data);              }, false);          } else {              //浏览器不支持server-sent events 所有主流浏览器均支持服务器发送事件,除了 Internet Explorer。  document.getElementById("result").innerhtml = "Sorry, your browser does not support server-sent events...";          }      </script>

服务端

服务端应当返回怎样的数据格式?应当以什么样的响应给客户端呢?先来个.net 的样例

     /// <summary>/// 推送消息/// </summary>/// <returns></returns>        [HttpGet]public HttpResponseMessage SentNews()
        {
            HttpResponseMessage response = Request.CreateResponse(httpstatusCode.OK);try{//response.Headers.Add("Access-Control-Allow-Origin", "*");//如需要跨域可配置string data_str = “推送至客户端的数据”;//当然可以是json字符串格式string even = "", data = "";if (!string.IsNullOrWhiteSpace(data_str))
                {
                    even = "event:sentMessage\n";
                    data = "data:" + data_str + "\n\n";
                }string retry = "retry:" + 1000 + "\n";//连接断开后重连时间(毫秒),其实可以理解为轮询时间 2333...byte[] array = Encoding.UTF8.GetBytes(even + data + retry);
                Stream stream_result = new MemoryStream(array);
                response.Content = new StreamContent(stream_result);
                response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/event-stream");//此处一定要配置response.Headers.CacheControl = new CacheControlHeaderValue();
                response.Headers.CacheControl.NoCache = false;
            }catch (Exception ex)
            {
                LogHelper.WriteWebLog(ex);
            }return response;
        }

看完以上代码我想你应该有个大概了,响应的方式还是HTTPResponse响应,但总是有点小小的要求的:

  • 响应报头"Content-Type" 要设置为 "text/event-stream"

响应的数据格式也应该注意到了上述代码中的"data:"、"event:"和"retry:"这些标记:

  1. event:表示该行用来声明事件的类型。浏览器在收到数据时,会产生对应类型的事件。

  2. data:表示该行包含的是数据。以 data 开头的行可以出现多次。所有这些行都是该事件的数据。

  3. retry:表示该行用来声明浏览器在连接断开之后进行再次连接之前的等待时间。

  4. id:表示该行用来声明事件的标识符(即数据的编号),不常用。

以上是“服务器推送事件的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网服务器频道!

--结束END--

本文标题: 服务器推送事件的示例分析

本文链接: https://www.lsjlt.com/news/80788.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 服务器推送事件的示例分析
    这篇文章主要为大家展示了“服务器推送事件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“服务器推送事件的示例分析”这篇文章吧。 ...
    99+
    2024-04-02
  • HTML5服务器推送事件的示例分析
    这篇文章给大家分享的是有关HTML5服务器推送事件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。服务器推送事件(Server-sent Events)是基于WebSoc...
    99+
    2024-04-02
  • HTML5的WebSocket与服务器推送事件实例分析
    这篇文章主要介绍“HTML5的WebSocket与服务器推送事件实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5的WebSocket与服务器推送事件...
    99+
    2024-04-02
  • html5之sse服务器发送事件EventSource的示例分析
    这篇文章主要介绍html5之sse服务器发送事件EventSource的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Server-Sent Events使用Server-S...
    99+
    2024-04-02
  • HTML5服务器发送事件实例分析
    本篇内容介绍了“HTML5服务器发送事件实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! &nbs...
    99+
    2024-04-02
  • DOM事件的示例分析
    这篇文章给大家分享的是有关DOM事件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.事件流时间流--- 描述的是从页面中接受事件的顺序。(1)事件冒泡流。事件最开始由...
    99+
    2024-04-02
  • Node.js事件的示例分析
    这篇文章主要为大家展示了“Node.js事件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Node.js事件的示例分析”这篇文章吧。快速概览要访问此模...
    99+
    2024-04-02
  • jQuery事件的示例分析
    这篇文章主要介绍了jQuery事件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一.window事件<!DOCTYPE&nb...
    99+
    2024-04-02
  • javascript事件的示例分析
    这篇文章将为大家详细讲解有关javascript事件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了js事件的传播,供大家参考,具体内容如下&...
    99+
    2024-04-02
  • Spring Boot发送邮件的示例分析
    这篇文章将为大家详细讲解有关Spring Boot发送邮件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Spring框架使用JavaMailSender接口为发送邮件提供了一个简单的抽象,并且S...
    99+
    2023-05-30
    springboot
  • JavaScript事件流的示例分析
    这篇文章主要介绍JavaScript事件流的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.什么是事件流 ?在学习事件流之前我们先看看什么是事件 ?事件代表文档或浏览器窗口中某个有意义的时刻即用户与页面的交...
    99+
    2023-06-29
  • redis事务的示例分析
    这篇文章将为大家详细讲解有关redis事务的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一: 事务实战具体到事务是什么,要保证什么。。。这个我想没必要...
    99+
    2024-04-02
  • MySQL事务的示例分析
    这篇文章将为大家详细讲解有关MySQL事务的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ACID 特性事务处理是一种对必须整批执行的 MySQL 操作的管理机制...
    99+
    2024-04-02
  • Hibernate事务的示例分析
    小编给大家分享一下Hibernate事务的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力...
    99+
    2023-06-17
  • javascript事件查询的示例分析
    这篇文章主要为大家展示了“javascript事件查询的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript事件查询的示例分析”这篇文章吧。click()   对...
    99+
    2023-06-03
  • Javascript事件对象的示例分析
    小编给大家分享一下Javascript事件对象的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如果是事件处理函数绑定的函...
    99+
    2024-04-02
  • VB.NET动态事件的示例分析
    这篇文章主要介绍VB.NET动态事件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!“大李哥,”我不免为自己问了如此多的问题而不好意思起来,“您刚才所说的事件的委托是怎么回事呀?”大李显然是明白我会提问的:“...
    99+
    2023-06-17
  • React事件处理的示例分析
    小编给大家分享一下React事件处理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!React的事件处理和DOM的事件处...
    99+
    2024-04-02
  • JavaScript中DOM事件的示例分析
    这篇文章主要介绍了JavaScript中DOM事件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、事件对象【获取事件对象】什么是事件对象:是个对象,这个对象里有事...
    99+
    2023-06-29
  • Canvas事件绑定的示例分析
    这篇文章主要介绍Canvas事件绑定的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我先来讲下实现原理:其实就是canvas绑定相关事件,在通过记录图片所在canvas的坐标,判断事件作用于哪个图片中。这样讲...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作