关于webSoket理解

webSoket 出现是因为普通的http请求,只是客户端发送请求,然后服务器接收,想要获取服务器端的消息只能通过Ajax请求,但h5之后出现的webSoket,打破了这一僵局~~~实现了客户端和服务器端全双工通信~

一,特点:建立连接之后一直保持连接状态。

var Socket = new WebSocket(url, [protocol] );

二,属性:

 Socket.readyState---只读属性 readyState 表示连接状态,可以是以下值:0 - 表示连接尚未建立。1 - 表示连接已建立,可以进行通信。2 - 表示连接正在进行关闭。3 - 表示连接已经关闭或者连接不能打开。

Socket.bufferedAmount (buffererdAmount 缓冲挂载)只读属性 bufferedAmount 已被 send() 放入正在队列中等待传输,但是还没有发出的 UTF-8 文本字节数。

三,事件:

open---连接建立时触发

message---客户端接收服务端数据时触发

onerror---通信发生错误时触发

close---连接关闭时触发

四,方法

Socket.send()使用连接发送数据

Socket.close()关闭连接

五,示例

// 初始化一个 WebSocket 对象

var ws = new WebSocket("ws://localhost:9998/echo");

// 建立 web socket 连接成功触发事件

ws.onopen = function () {

  // 使用 send() 方法发送数据

  ws.send("发送数据");

  alert("数据发送中...");

};

// 接收服务端数据时触发事件

ws.onmessage = function (evt) {

  var received_msg = evt.data;

  alert("数据已接收...");

};

// 断开 web socket 连接成功触发事件

ws.onclose = function () {

  alert("连接已关闭...");

};


最后问答:

HTTP 和 WebSocket 有什么关系?

Websocket 其实是一个新协议,跟 HTTP 协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是 HTTP 协议上的一种补充。

Html 和 HTTP 有什么关系?

Html 是超文本标记语言,是一种用于创建网页的标准标记语言。它是一种技术标准。Html5 是它的最新版本。

Http 是一种网络通信协议。其本身和 Html 没有直接关系。

你可能感兴趣的:(关于webSoket理解)