9月10号=》466页-470页

18.2  使用WebSocket与服务器通信

    WebSocket是一个革命性的技术,它改变了传统HTTP协议的通信方式。通过WebSocket可以让服务器主动向浏览器“推送”数据。

18.2.1  WebSocket接口

    按照传统的HTTP协议,如果浏览器不向Web服务器发送请求,那么Web服务器就不能把数据“推送”给浏览器。在这样的技术背景下,如果需要构建实时性要求比较高的应用,

    比如说在线游戏、在线证券、设备监控、新闻在线播报等,当客户端浏览器呈现这些信息的时候,服务器端的数据可能已经更新过了。

    为了让客户端和服务器端的信息同步是实时的,常用的解决方法有如下两种。

      定义发送请求:浏览器以固定频率向服务器端发送请求,以频繁请求的方式来保持客户端和服务器端的同步。这种同步方案的最大问题是,当客户端以固定频率向服务器端发起

              请求的时候,服务器端的数据可能并没有更新,这样会带来很多无谓的网络传输,所以这是一种非常低效的实时方案。

      隐藏的连接:在浏览器页面上使用一个隐藏的窗口与服务器端建立长连接,服务器端通过这个长连接可以将数据源源不断地“推送”给浏览器。但这种机制需要针对不同的浏览器设计

            不同的解决方案,而且这种机制在并发量比较大的情况下,会加重服务器端的负担。

    WebSocket的出现完全可以改变这种现状,WebSocket允许通过JavaScript建立与远程服务器的连接,从而允许远程服务器将数据推送给浏览器。

    WebSocket定义了如下两个方法:

      send():向远程服务器发送数据。

      close():关闭该WebSocket。

    WebSocket还定义了如下事件监听器属性,通过为这些属性绑定事件监听器函数即可监听网络通信。

      onopen:当WebSocket建立网络连接时触发该事件。

      onerror:当网络连接出现错误时触发该事件。

      onclose:当WebSocket被关闭时触发该事件。

      onmessage:当WebSocket接收到远程服务器的数据时触发该事件。

    WebSocket还定义了一个readyState属性,该属性可以返回WebSocket所处的状态。

    该属性可能返回如下几个状态值。

      CONNECTING(数值0):WebSocket正在尝试与服务器建立连接。

      OPEN(数值1):WebSocket与服务器已建立连接。

      CLOSING(数值2):WebSocket正在关闭与服务器的连接。

      CLOSED(数值3):WebSocket已经关闭了与服务器的连接。

    如果需要使用WebSocket来与远程服务器通信,只需要如下3个步骤即可。

      (1)调用WebSocket的Constructor(DOMString url,[DOMString protocols])创建一个WebSocket对象。

      (2)如果要发送消息,则调用WebSocket的send()方法发送消息即可。

      (3)如果要接收消息,则为WebSocket的onmessage()方法绑定事件监听器即可。

时间: 2024-10-25 21:00:39

9月10号=》466页-470页的相关文章

8月10号=》376页-385页

14.7 传统的DHTML模型 在DHTML对象模型中,window对象时整个对象模型的顶层对象,该对象包含一个document属性,该属性代表窗口内的HTML文档, 如果该窗口内有多个Frame,则可使用frames[]方法依次访问该窗口的每个Frame. document对象代表HTML文档本身,document对象又包含了一系列的属性:forms.anchors.links.images·····这些属性的 返回值以关联数组的形式存在,为了访问文档内的指定控件,访问这些属性数组的指定元素即

5月29号=》第41页-第45页

2.4 HTML5头部和元信息 <script>:该元素用于包含JavaScript脚本. <style>:该元素用于定义内部CSS样式. <link>:该元素用于链接外部CSS样式等资源. <title>:该元素用于定义文档标题. <base>:该元素用于指定该页面中所有链接的基准链接. 该元素属性如下: href:指定所有链接的基准链接. target:指定超链接默认在哪个窗口打开=>(_blank._parent._self._top

5月27号=》第30页-第35页

2.18 框架相关元素 HTML5删除了<frameset>.<frame>.<noframes>这三个标签 保留了<iframe>元素 2.2 HTML5新增的通用属性 2.2.1 contenEditable:该属性为true时可在页面直接对该标签进行编辑    用户编辑完后,内容会直接显示在该页面中(一旦  刷新页面就会重新加载,编辑的内容会丢失),开发  者可以通过该元素的innerHTML属性来获取编辑后    的内容   该属性具有"可

10月10号就准备进公司

10月10号 进入公司. 月薪是8K 技术水平:初级程序员. 技术目前为止:JAVASE. JAVAEE.SSH.SSM.AJAX.JQUERY.JS.MYSQL.ORACLE.LUCENE.pdsgell各种插件 都在入门级别. 一般功能可以做出来.. 现在又回到了JAVASE.准备研究开始研究底层原理. 一切从最基础开始研究. 研究源码. 现在是第二遍研究底层.. 10号开始..我会将每一天的成长进到微博.连续记载999天. 希望在我成长的999天里. 回过头来看今天日记.. 希望成长的99

北京1月10号 《微营销超前思维模式》将颠覆整个世界,开创新时代!

北京1月10号 <微营销超前思维模式>将颠覆整个世界,开创新时代! 0 如果你接触了微信营销一段时间一定听过下面这些案例:1.7天连锁酒店利用微信在一个月内会员从30万快速倍增到100万. 2.凯迪拉克通过30天的推广吸引37万精准粉丝,轻松省去传统的1千万的推广费.3."90后"的学生通过微信卖水果,没店铺,没店员,实现月入8万的奇迹.4.金凤成祥微信会员卡上线97天,累计开卡数163276张.5.2013年9月,陈坤微信门事件,陈坤公开微信平台一天净收入就高达700万元

2020.2月10号-2月16任务完成情况

2月10号-2月16任务完成情况: 1. java并发复习了一遍,但是还没总结完 2. go入门,看到第5章 3. 剑指offer每天一题 4. 剑指offer书看了20道题 2月17-23任务: 1. 看完go语言 2. 看完剑指offer书 3. 每天一题 原文地址:https://www.cnblogs.com/Stephanie-boke/p/12355451.html

5月28号=》第35页-第40页

2.3.2 语义相关元素 <mark>:用于显示HTML页面中需要重点"关注"的内容,浏览器 通常会用黄色显示该标签内的内容. <time>:用来显示被标注内容是日期.时间或者日期时间.   使用该标签要指定datetime属性,格式为"yyyy-MM-ddTHH:mm"   如果<time>标签的内容直接符合以上格式,则可以不用指定datetime属性. <details>:该元素用于显示一段详细信息或某个主题的细节

3月10号周二课堂练习:四则运算二

一.题目新的要求 1.题目避免重复: 2.可定制(数量/打印方式): 3.可以控制下列参数: 是否有乘除法.是否有括号. 数值范围.加减有无负数.除法有无余数.否支持分数 (真分数, 假分数, …).是否支持小数 (精确到多少位).打印中每行的间隔可调整: 二.设计思想(将自己上次上课时的设计思想进行稍微的修改) 1.判断两次随机数是否相同    使用函数srand()保证两个随机数不同 2.多加入一个变量,来控制题目数量 3.在每一个switch选择的语句,进行选择判断  3.1选择是否有乘除

8月10号课后练习

课后练习 1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小. #!/bin/bash echo Hostname: `hostname` echo IP address: `ifconfig|egrep -o "[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}"|head -n1`