html实现websocket协议,HTML5实现WebSocket协议原理浅析

WebSocket协议允许在现有HTTP基础设施上实现全双工通信,确保与早期网络环境的兼容性。通过HTTP握手,客户端和服务器之间建立连接,之后HTTP连接被分解,取而代之的是WebSocket连接。WebSocket数据帧在客户端和服务器之间双向传输,支持文本和二进制格式,并使用特定的帧结构。
摘要由CSDN通过智能技术生成

websocket协议的目的是为了工作于现有的网络基础设施。作为这一设计原则的一部分,websocket连接的协议规范定义了一个http连接作为其开始生命周期,进而保证其与pre-websocket世界的完全向后兼容。通常来说从http协议切换websocket称为websocket握手。

浏览器发送一个请求到服务器,这表明它想开关从http websocket协议。客户端通过升级标题表达的愿望,代码如下所示:

复制代码代码如下:

get ws://echo.websocket.org/?encoding=text http/1.1

origin: http://websocket.org

cookie: __utma=99as

connection: upgrade

host: echo.websocket.org

sec-websocket-key: urovsczjnol/umbtt5ukmw==

upgrade: websocket

sec-websocket-version: 13

如果服务器理解websocket协议,它通过升级头同意协议切换。

复制代码代码如下:

http/1.1 101 websocket protocol handshake

date: fri, 10 feb 2012 17:38:18 gmt

connection: upgrade server: kaazing gateway

upgrade: websocket

access-control-allow-origin: http://websocket.org

access-control-allow-credentials: true

sec-websocket-accept: rlhckw/skso9gah/zsfhbatdkru=

access-control-allow-headers: content-type

此时http连接分解并取代了websocket连接在同一底层tcp / ip连接。websocket连接使用http(80)和https端口一样(443),默认情况下。

连接建立后,websocket数据帧可以发送客户机和服务器之间来回在全双工模式下。两种文本和二进制帧可以在两个方向同时发送。只有两个字节数据最小陷害。对于文本帧,每一帧始于0 x00字节,以0 xff字节结束,包含utf - 8数据。websocket文本框架使用一个终结者,而二进制帧使用前缀长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值