iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >如何理解HTML5的WebSocket与服务器推送事件
  • 923
分享到

如何理解HTML5的WebSocket与服务器推送事件

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

本篇文章为大家展示了如何理解HTML5的websocket与服务器推送事件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。WebSocketsWEB Sockets

本篇文章为大家展示了如何理解HTML5websocket服务器推送事件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

WebSockets

WEB Sockets 是用于 Web 应用程序的新一代双向通信技术,运行在单一套接字之上,它通过 javascript 接口暴漏在 html5 兼容的浏览器中。

一旦取得 Web 服务器上的 Web Socket 连接之后,就可以通过调用 send() 方法从浏览器发送数据到服务器上,通过 onmessage 事件处理程序从服务器接收数据到浏览器中。

下面是创建一个新的 WebSocket 对象的 api

JavaScript Code复制内容到剪贴板

  1. var Socket = new WebSocket(url, [protocal] );  

第一个参数 url 用于指定要连接的 URL。第二个属性 - 端口是可选的,如果提供,就会指定一个服务器必须支持连接成功的子协议。

WebSocket 属性
下面是 WebSocket 对象的属性。假定我们已经创建了上述的 Socket 对象:

属性描述
Socket.readyState

只读属性readyState表示连接的状态。有以下取值:

  1. 0 表示连接尚未建立。

  2. 1 表示连接已建立,可以进行通信。

  3. 2 表示连接正在进行关闭握手。

  4. 3 表示连接已经关闭或者连接不能打开。

Socket.bufferedAmount

只读属性bufferedAmount表示已经使用 send() 方法排队的 URF-8 文本字节数。


WebSocket 事件
下面是 WebSocket 对象相关的事件。假定我们已经创建了上述的 Socket 对象:

事件事件处理程序描述
openSocket.onopen建立 socket 连接时触发这个事件。
messageSocket.onmessage客户端从服务器接收数据时触发。
errorSocket.onerror连接发生错误时触发。
closeSocket.onclose连接被关闭时触发。


WebSocket 方法
下面是 WebSocket 对象相关的方法。假定我们已经创建了上述的 Socket 对象:

方法描述
Socket.send()

send(data) 方法使用连接传输数据。

Socket.close()

close() 方法用于终止任何现有连接。

服务器推送事件
传统的 Web 应用程序生成发送到 Web 服务器端的事件。比如,点击一个链接会从服务器请求一个新页面。

这种从 Web 浏览器到 Web 服务器的时间类型可以称作客服端事件。

随着 HTML5 的出现,WHATWG Web Applications 1.0 引入了一个从 Web 服务器到 Web 浏览器的事件流,被称作服务器推送事件(SSE)。使用 SSE 可以不停的将 DOM 事件推送到用户的浏览器中。

这个事件流方法会打开一个到服务器的持久连接,新消息可用时发送数据到客户端,从而不再需要持续的轮询。

SSE Web 应用程序
要在 Web 应用程序中使用服务器推送事件,我们需要给文档添加一个 <eventsource>元素。

<eventsource> 元素的 src 属性应该指向一个 URL,这个 URL 应该提供一个 Http 持久连接用于发送包含事件的数据流。

这个 URL 将会指向一个持续发送事件数据的 PHP,PERL 或者任意 python 脚本。下面是一个简单的期望获得服务器时间的 Web 应用程序示例。

XML/HTML Code复制内容到剪贴板

  1. <!DOCTYPE HTML>  

  2. <html>  

  3. <head>  

  4. <script type="text/javascript">  

  5.   

  6. </script>  

  7. </head>  

  8. <body>  

  9. <div id="sse">  

  10.    <eventsource src="/cgi-bin/ticker.cgi" />  

  11. </div>  

  12. <div id="ticker">  

  13.    <TIME>  

  14. </div>  

  15. </body>  

  16. </html>  

SSE 服务器端脚本
服务器端脚本应该发送 Content-type 头指定类型为 text/event-stream,如下所示:

代码如下:

print "Content-Type: text/event-stream\n\n";


设置 Content-type 之后,服务器端脚本将发送一个后面紧跟事件名称的 Event: 标签。下面的示例将会发送一个以换行符结束的 Server-Time 作为事件名称。

代码如下:

print "Event: server-time\n";


最后一步是使用 Data: 标签发送事件数据,紧随其后的是以换行符结束的整数字符串值,如下所示:

代码如下:

$time = localtime();
print "Data: $time\n";


下面是用 perl 编写的完整 ticker.cgi:

代码如下:


#!/usr/bin/perl
print "Content-Type: text/event-stream\n\n";
while(true){
  print "Event: server-time\n";
  $time = localtime();
  print "Data: $time\n";
  sleep(5);

处理服务器推送事件
让我们修改一下我们的 Web 应用程序来处理服务器推送时间。下面是最终示例:

XML/HTML Code复制内容到剪贴板

  1. <!DOCTYPE HTML>  

  2. <html>  

  3. <head>  

  4. <script type="text/javascript">  

  5.    document.getElementsByTagName("eventsource")[0].   

  6.             addEventListener("server-time", eventHandler, false);   

  7.    function eventHandler(event)   

  8.    {   

  9.        // Alert time sent by the server   

  10.        document.querySelector('#ticker').innerHTML = event.data;   

  11.   

  12.    }   

  13. </script>  

  14. </head>  

  15. <body>  

  16. <div id="sse">  

  17.    <eventsource src="/cgi-bin/ticker.cgi" />  

  18. </div>  

  19. <div id="ticker" name="ticker">  

  20.    [TIME]   

  21. </div>  

  22. </body>  

  23. </html>  

测试服务器推送事件之前,建议你确保你的 Web 浏览器支持这一概念。

上述内容就是如何理解HTML5的WebSocket与服务器推送事件,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网服务器频道。

--结束END--

本文标题: 如何理解HTML5的WebSocket与服务器推送事件

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

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

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

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

下载Word文档
猜你喜欢
  • 如何理解HTML5的WebSocket与服务器推送事件
    本篇文章为大家展示了如何理解HTML5的WebSocket与服务器推送事件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。WebSocketsWeb Sockets ...
    99+
    2024-04-02
  • HTML5的WebSocket与服务器推送事件实例分析
    这篇文章主要介绍“HTML5的WebSocket与服务器推送事件实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5的WebSocket与服务器推送事件...
    99+
    2024-04-02
  • HTML5服务器推送事件的示例分析
    这篇文章给大家分享的是有关HTML5服务器推送事件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。服务器推送事件(Server-sent Events)是基于WebSoc...
    99+
    2024-04-02
  • 服务器推送事件的示例分析
    这篇文章主要为大家展示了“服务器推送事件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“服务器推送事件的示例分析”这篇文章吧。 ...
    99+
    2024-04-02
  • WebSocket如何实现服务器消息推送客户端
    这篇文章主要为大家展示了“WebSocket如何实现服务器消息推送客户端”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“WebSocket如何实现服务器消息推送客户端”这篇文章吧。  一、背景  ...
    99+
    2023-06-02
  • HTML5服务器发送事件实例分析
    本篇内容介绍了“HTML5服务器发送事件实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! &nbs...
    99+
    2024-04-02
  • html5之sse服务器发送事件EventSource的示例分析
    这篇文章主要介绍html5之sse服务器发送事件EventSource的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Server-Sent Events使用Server-S...
    99+
    2024-04-02
  • 如何处理HTML5 Canvas的事件
    本篇内容介绍了“如何处理HTML5 Canvas的事件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!DOM...
    99+
    2024-04-02
  • 亚马逊邮件推送服务器错误怎么回事
    要解决这些问题,您可以检查以下几个方面: 检查服务器响应时间:如果您的邮件推送服务器响应时间很长,可能会导致邮件发送失败。您可以检查服务器的设置,确保它的响应时间与您的预期相符。 检查邮件发送服务器配置:检查邮件发送服务器的配置,包括服...
    99+
    2023-10-27
    亚马逊 怎么回事 错误
  • 如何理解html5 Web SQL Database中事务处理函数transaction与executeSQL
    这篇文章主要讲解了“如何理解html5 Web SQL Database中事务处理函数transaction与executeSQL”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入...
    99+
    2024-04-02
  • 如何理解Oracle的INITRANS与事务
    本篇文章给大家分享的是有关如何理解Oracle的INITRANS与事务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 Oracle的INIT...
    99+
    2024-04-02
  • 如何理解HTML5 Video标签的属性、方法和事件
    本篇内容介绍了“如何理解HTML5 Video标签的属性、方法和事件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • 亚马逊邮件推送服务器异常怎么解决
    1. 了解亚马逊邮件推送服务 亚马逊邮件推送服务(Amazon SES)是一项亚马逊提供的云服务,可以帮助开发人员和企业发送电子邮件。它提供了一个可靠的、可扩展的、低成本的基础设施,可以轻松地发送各种类型的电子邮件,包括营销邮件、通知邮件...
    99+
    2023-10-27
    亚马逊 异常 邮件
  • 如何推送到亚马逊服务器上面去
    要将您的产品推送到亚马逊服务器上,您需要遵循以下步骤: 创建一个亚马逊卖家账户并注册为卖家。 登录您的卖家账户并选择“添加产品”选项。 输入您的产品信息,包括产品名称、描述、价格、库存等。 选择您的产品类别和子类别,并添加产品图片。 确...
    99+
    2023-10-27
    亚马逊 服务器
  • shell脚本如何从SVN推送到多台服务器
    这篇文章将为大家详细讲解有关shell脚本如何从SVN推送到多台服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:SRCDIR=/letv/data/www/htdocs_user/MOD=u...
    99+
    2023-06-09
  • Android极光推送处理message遇到的坑如何解决
    这篇文章主要介绍“Android极光推送处理message遇到的坑如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android极光推送处理message遇到的坑如何解决”文章能帮助大家解决问...
    99+
    2023-07-05
  • HTML5中滚动到底部的事件如何解决
    HTML5中滚动到底部的事件如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码实现:<html>    &nbs...
    99+
    2023-06-09
  • SpringBoot+netty-socketio如何实现服务器端消息推送
    这篇文章主要介绍SpringBoot+netty-socketio如何实现服务器端消息推送,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先:因为工作需要,需要对接socket.io框架对接,所以目前只能使用nett...
    99+
    2023-06-14
  • 如何理解HTML5中的文件导入
    本篇内容介绍了“如何理解HTML5中的文件导入”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Templat...
    99+
    2024-04-02
  • 如何关闭华为云服务器的广告推送功能
    1. 登录华为云控制台 首先,打开浏览器并访问华为云的官方网站。在网站上找到并点击"登录"按钮,输入您的账号和密码,然后点击"登录"。 2. 进入云服务器管理页面 成功登录后,您将进入华为云的控制台。在控制台页面上,找到并点击"云服务器"...
    99+
    2023-10-28
    华为 功能 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作