websocket学习笔记

17 篇文章 0 订阅
7 篇文章 0 订阅

websocket是h5新出的支持全双工的,持久化的协议,它也支持服务器端推送。通常在客户端是通过new创建一个websocket对象

var socket=new WebSocket(url,[protocols])

不是所有的浏览器都支持websocket协议,它接收两个参数,第一个是通信的url,第二个是协议数组,协议可以是注册协议(已根据RFC6455,向注册协议的正式管理实体IANA正式注册的标准协议),开放协议(广泛使用的标准化协议,如XMPP ),自定义协议。

ws协议有四种状态,通过readyState判断,0是代表连接正在进行中,还未建立。1代表是连接已经建立,消息可在客户端和服务器之间传递,2代表连接正在关闭握手,4代表连接已经关闭,不能打开。

ws对象调度有四个不同事件,open(监听连接建立),message(监听发送来的消息),error(监听连接意外中断事件),close(监听连接关闭事件)

ws协议依靠RFC6455中定义的sec-首标,

Sec-WebSocket-Key:只能在http请求中出现一次,用于客户端到服务器的WebSocket初次握手,避免跨协议攻击

Sec-WebSocket-Accept:只能在http响应中出现一次,用于客户端到服务器的初次握手,确定服务器理解websocket协议,通过Sec-WebSocket-Key计算出来的

Sec-WebSocket-Version:用于客户端到服务端的初次握手,表示版本的兼容性

Sec-WebSocket-Extensions:可能在http请求中出现多次,响应中只能出现一次

Sec-WebSocket-Protocol:用于客户端到服务器的初次握手,然后从服务端到客户端的响应,这个首标通告客户端应用程序可使用的协议,服务器使用相同的首标

ws可以接收文本消息,也可以接收二进制数据,这种数据作为blob消息或者ArrayBuffer消息处理。

websocket连接始于http请求,但包含一个特殊首标Upgrade,Upgrade首标表示将协议连接升级到不同的协议,Connection首标为upgrade

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值