发布网友 发布时间:2022-04-21 16:08
共4个回答
懂视网 时间:2022-05-12 09:26
从websocket API 中了解到,websocket 可以自定义子协议,想深入了解一下,但是好像网上并没有类似的例子,请高手指点。Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
热心网友 时间:2022-05-12 06:34
由于Websocket协议提供的是一个基于包的可靠传输协议,它并不像HTTP那样是个应用协议,它的包对内容并不像HTTP那样有Content-Type字段去描述,是一个比较底层的协议,就和TCP一样,如果要用来通信通常需要自己来定一个协议。那么subprotocol就可以作为一个标示来让服务端和客户端之间进行协商用。
客户端在进行连接的时候可以声明自己能接受的子协议类型。这和HTTP请求头里带的Accept和Accept-Encoding头字段一样,说明自己可以接受那些类型文件,或者编码,通常是压缩类型
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
HTTP的请求里带的这样,向server端说明它能理解哪些类型的数据。
然后和HTTP一样,Server会根据合适的头来返回相应的内容。 然后客户单就知道怎么样去解释响应的数据了。
热心网友 时间:2022-05-12 07:52
WebSocket协议是一种网络协议,它实现了浏览器与服务器的双向通讯的设计。
热心网友 时间:2022-05-12 09:26
websocket的子协议,定义的时候
var sock = new WebSocket(url,subportocol);
第一个参数表示要请求的地址URL,第二个参数(可选的,如果不写就默认是空字符串)字符串或者字符串组成的数组,每个字符串就是一个子协议。服务器返回响应客户端子协议才能建立连接,否则握手失败。如服务端告诉客户端使用str1协议建立连接:
请求:
Sec-WebSocket-Protocol:str1,str2
Sec-WebSocket-Version:13
Upgrade:websocket
响应:
Connection:Upgrade
Sec-WebSocket-Accept:lWc5qBYvZLWjFVzUOegIyRDnSG0=
Sec-Websocket-Protocol:str1
Upgrade:websocket