iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >WebSocket的通信模式是什么
  • 302
分享到

WebSocket的通信模式是什么

2024-04-02 19:04:59 302人浏览 八月长安
摘要

今天小编给大家分享一下websocket的通信模式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来

今天小编给大家分享一下websocket的通信模式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

传统的Http都是基于请求响应模型的,客户端和服务器端无法实现实时通信。之前也有模仿实时通信的技术,但从轮询、长轮询到Comet都不能彻底解决实时通信的问题。WEBSocket的出现改变了这一状况,大幅度减少通信中无用的消息首部极大地提高了通信效率,同时也提供了非常低的延时。

注意 WebSocket不是没有延时,只是比较稳定,延时较短。在实际的工程运用中,WebSocket的延时是随机的,视网络情况而定。)

下面给出WebSocket请求和响应的消息首部。客户端到服务端的请求代码如下:

From client to server:

GET /demo HTTP/1.1

Host: example.com

Connection: Upgrade

Sec-WebSocket-Key2: 12998 5 Y3 1 .P00

Sec-WebSocket-Protocol: sample

Upgrade: WebSocket

Sec-WebSocket-Key1: 4@1 46546xW%0l 1 5

Origin: HTTP://example.com

[8-byte security key]

服务端到客户端的响应代码如下:

From server to client:

HTTP/1.1 101 WebSocket Protocol Handshake

Upgrade: WebSocket

Connection: Upgrade

WebSocket-Origin: HTTP://example.com

WebSocket-Location: ws://example.com/demo

WebSocket-Protocol: sample

[16-byte hash response]

构造了WebSocket的消息首部后,客户端必须按照如下7个步骤产生通信。

(1) 解析WebSocket的URL地址,获取主机、端口、资源名称、安全模式。(如果连接不成功,则返回一个SYNTAX_ERR异常并中止执行。)

(2) 检查端口是否被占用。(如果发起的端口已经被占用,则抛出一个SECURITY_ERR异常并中止执行。一般情况下,80和443端口不会被封。)

(3) 若协议不被浏览器支持,则协议会被设为一个空数组

(4) 如果在通信过程中,有任何内容字符的Unicode码值小于U+0021或大于 U+007E(换言之,有空格字符或任意不能显示的ASCII码),都将报错          SYNTAX_ERR异常,同时断开通信步骤。

(5) WebSocket构造器脚本先使源变成序列化的ASCII码,然后再转换成ASCII码的下标格式。

(6) 返回一个新的WebSocket对象,并在后台继续这些动作(不锁死脚本)。

(7) 建立一个到指定主机端口的WebSocket连接,该连接从源发起一个带着安全认证、源主机名称、协议列表(可能为空)和遵守cookie旗标设置的连接请求。

以上就是“WebSocket的通信模式是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网html频道。

--结束END--

本文标题: WebSocket的通信模式是什么

本文链接: https://www.lsjlt.com/news/94764.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作