WebSocket对象特性

一:WebSocket对象特性

可以使用多种WebSocket对象特性提供关于WebSocket对象的更多信息:readyState、bufferedAmount和protocol。

1. WebSocket对象特性:readyState

WebSocket对象通过只读特性readyState报告其连接状态,你在前面的几节中已经学到了一点相关的知识。这个属性根据连接状态自动变化,并提供关于WebSocket连接的有用信息。

表2-1描述了用于描述连接状态的readyState特性的4个不同值。

表2-1   readyState特性、取值和状态描述

信息来源:万维网联盟,2012年。

正如WebSocket API所描述的,当WebSocket对象第一次创建时,readyState为0,表示套接字正在连接。了解WebSocket连接的当前状态有助于应用程序的调试,例如,确保在尝试开始向服务器发送请求之前已经打开了WebSocket连接。这一信息对于了解连接的生命周期也很有用。

二WebSocket对象特性:bufferedAmount

设计应用程序时,你可能想要检查发往服务器的缓冲数据量,特别是在客户端应用程序向服务器发送大量数据的时候。尽管调用send()是立即生效的,但是数据在互联网上的传输却不是如此。浏览器将为你的客户端应用程序缓存出站数据,从而使你可以随时调用send(),发送任意数量的数据。然而,如果你想知道数据在网络上传送的速率,WebSocket对象可以告诉你缓存的大小。你可以使用bufferedAmount特性检查已经进入队列,但是尚未发送到服务器的字节数。这个特性报告的值不包括协议组帧开销或者操作系统、网络硬件所进行的缓冲。

代码清单2-17展示一个使用bufferedAmount特性每秒发送更新的例子。如果网络无法承受这一速率,它会相应地作出调整。

代码清单2-17   bufferedAmount示例

对于限制应用向服务器发送数据的速率,从而避免网络饱和,bufferedAmount特性很有用。

专家提示 你可以在试图关闭连接之前检查对象的bufferedAmount特性,确定是否有些数据还没有从应用中发送到服务器。

三 WebSocket对象特性:protocol

在前面关于WebSocket构造函数的讨论中,我们提到了protocol参数,它让服务器知道客户端理解并可在WebSocket上使用的协议。WebSocket对象的protocol特性提供了另一条关于WebSocket实例的有用信息。客户端和服务器协议协商的结果可以在WebSocket对象上看到。protocol特性包含在打开握手期间WebSocket服务器选择的协议名,换句话说,protocol特性告诉你特定WebSocket上使用的协议。protocol特性在最初的握手完成之前为空,如果服务器没有选择客户端提供的某个协议,该特性保持空值。

时间: 2024-11-09 03:11:16

WebSocket对象特性的相关文章

【HTML5 WebSocket】WebSocket对象特性和方法

<HTML5 WebSocket权威指南>学习笔记&3 WebSocket方法的对象特性 1. WebSocket方法 a. send方法 send方法用于在WebSocket连接建立后,客户端向服务端发送消息.可分为发送两种消息,一种是普通文本信息,一种是二进制数据.需注意的是,send方法必须在连接建立以后才能使用,也就是在onopen里使用才不会出错. 发送普通消息 这个比较简单,在上一篇学习WebSocket事件时就用到了,只需要send(message)即可. 发送二进制数据

java-面对对象特性概要

java-面对对象特性概要 一 对象与对象之间的联系 依赖  关联 聚合 可以独立 组合 不可独立 继承 子类父类的关系 二 打包java文件 打包java文件 jar cvfm test.jar ***.mf ***.class等class文件 解包运行 java -jar test.java 三 继承 子类(派生类)继承父类(基类),继承与被继承的关系,面对对象就是不同的对象间相互联系 关键字 extends public class S extends F{} 私有方法和变量无法继承 四

HTML5开发之旅WebSocket对象的创建及其与WebSocket服务器的连接(5)

WebSocket接口的使用非常简单,要连接通信端点,只需要创建一个新的WebSocket实例,并提供希望连接URL. 1 //ws://和wss://前缀分别表示WebSocket连接和安全的WebSocket连接. 2 url = "ws://localhost:8080/echo";//表示WebSocket连接 3 var w = new WebSocket(url);//创建一个新的WebSocket实例,并提供希望连接URL. HTML5开发之旅WebSocket对象的创建

websocket对象及方法

# websocket对象及方法 1.websocket对象 以下 API 用于创建 WebSocket 对象. var Socket = new WebSocket(url, [protocol] ); 以上代码中的第一个参数 url, 指定连接的 URL.第二个参数 protocol 是可选的,指定了可接受的子协议. 2.WebSocket 属性 以下是 WebSocket 对象的属性.假定我们使用了以上代码创建了Socket对象,它具有下列属性: Socket.readyState 只读属

javscript巧用对象特性去掉数组重复项并排序

当有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后运行alert(a[0]),两种情况下的运行结果都是1,这就是说,数据集合既可以用数组表示,也可以用对象表示!但是我们是无法定义一个具有两个相同key值的object,而我们正可以利用这种特性来去掉数组中的重复项. 把数组转成一个js对象 把数组中的值变成对象中的key 把对象还原成数组 //把数组转成一个js对象 function toObj(arr){ var obj = {}; for(var i=

[redis读书笔记] 第一部分 数据结构与对象 对象特性

一 类型检查和多态    类型检查,即有的命令是只针对特定类型的,如果类型不对,就会报错,此处的类型,是指的键类型,即robj.type.下面为有类型检查的命令: 对于某一种类型,redis下底层的实现(编码类型 robj.encoding)可以是不同的,比如字符串键可以是ziplist或者linklist,那么可以想象,redis需要支持对命令的多态,无论编码类型是什么,都能得到正确的结果,  二 内存回收: robj.refcount用于内存回收,创建新的robj时,refcount为1,对

Java学习笔记1-面向对象特性

面向对象编程(OOP):让编程更有层次感,增加了公用模块的复用性,让程序员精力更加的集中到具体业务实现和技术突破上去.同时也让程序员在实现时提前考虑框架性,比如类的设计,可以对形象思维有了更高的要求. 面向程序设计方法的 5 大基本特征: 1.所有东西都是对象: 2.程序是一大堆对象的组合,通过消息传递,各对象知道自己该做什么: 3.每个对象都有自己的存储空间,可容纳其他对象: 4.每个对象都有一种类型: 5.同一类所有对象都可以接收相同的消息. 作用域 当前类 同一Package 子孙类 其他

JavaScript笔记 - Object对象特性的应用

可以依据js对象中key是永远不会重复的原则,来模拟Map类型以及去除数组重复项. 1.模拟Map类型 (1)构造Map对象 function Map(){ //private var obj = {}; // 空的对象容器,存放键值对 //put方法 this.put = function (key,value){ obj[key] = value; } //get方法 this.get = function(key){ if(obj[key] || obj[key] === 0 || obj

WebSocket对象的“readyState”属性记录连接过程中的状态值

websocket的两个属性:readyState和bufferedAmount. 根据readyState属性可以判断webSocket的连接状态,该属性的值可以是下面几种: 0 :对应常量CONNECTING (numeric value 0), 正在建立连接连接,还没有完成.The connection has not yet been established. 1 :对应常量OPEN (numeric value 1), 连接成功建立,可以进行通信.The WebSocket conne