第一章: WebSocket初识

关于webSocket的话题并不少见,比如我们经常遇到的聊天室啦,实时的消息互动啦,巴拉巴拉很多东西都会使用的一项技术。接下来我们就具体来看看webSocket到底是什么东西以及具体的应用场景

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。
WebSocket通信协议于2011年被IETF定为标准RFC 6455,并被RFC7936所补充规范。

这一段是百度百科给的解释,在这里提到了一个关键词 全双工,接下来我们就要提到三个概念了

单工 Simplex

通信双方被明确的分为发送器和接收器,只允许单向的数据传输。
举个栗子:比如收音机,它除了接受信号并播放之外就没有什么功能了,而此时的电台就承担了发送器这一角色

半双工 Half Duplex

通信双方既是发送器也是接收器,但在同一时刻只允许向一个方向传送数据。
举个栗子:比如步话机,我们经常看到的场景是这样的
现场的客户:喂喂, 为什么我的网页访问不到啊??? over
远程的技术:什么?我先去查查网络问题 over
现场的客户:你们到底行不行啊,我花了大价钱你们就这么个服务? over
远程的技术:大哥你别慌,我已经跟服务器那边联系#@$!我们正在抓紧时间检测问题#%……#¥% over
...
现场的客户:你们别找了,我的网线被老鼠啃了 over
远程的技术:...我去年买了个表


timg.gif

我们可以看到这种类似于回合制的场景就是半双工的最大特点了

全双工 Full Duplex

通信双方既是发送器也是接收器,并且允许同时相互发送消息。
举个栗子:
现场的客户:喂喂, 为什么我的网页访问不到啊???
远程的技术:什么?我先去查查网络问题
现场的客户:你们到底行不行啊...(被打断)
远程的技术:大哥你别慌,我已经跟服务器那边联系#@$!我们正在抓紧时间检测问题#%……#¥%!@
现场的客户:...我好像..(再次被打断)
远程的技术:也有可能是xx问题,我再看看
现场的客户:...你们不用..(再再次被打断)
远程的技术:不不不,已经确定不是这个问题了,真是奇了怪了


timg (1).jpg

...
现场的客户:你们别找了,我的网线被老鼠啃了
远程的技术:你为什么不早说???
现场的客户:...你倒是给我机会说啊

timg.jpg

好了,以上就是关于通信方式的三种方式了。接下来我们来了解一下webSocket具体是如何工作的
首先我们先看看他的大兄弟http是如何工作的

无标题.png

由上图可以得到一个结论http真是一个话痨,啊,不是,我们得到的结论是如果客户端需要获取信息的话,就需要不断的通过http请求访问服务器来得到信息。在这里我们来看看下面的几个概念

短连接

--连接开始--
http:我想要查一下托尼老师的信息
server:好啊,这是他的家庭住址,电话...@#&&%%*
--连接关闭--
--连接开始--
http:刚刚的信息搞掉了,你再给我发一份呗
server:???什么上一份,你再说啥?
--连接关闭--
--连接开始--
http:就刚刚的啊
server:???什么刚刚的,你再说啥?
--连接关闭--
--连接开始--
http:我想要查一下托尼老师的信息
server:好啊,这是他的家庭住址,电话...@#&&%%*
--连接关闭---

由此可知,服务器是属鱼的,你给他说的东西他转眼就忘了

长连接

--连接开始--
http:我想要查一下托尼老师的信息
server:好啊,这是他的家庭住址,电话...@#&&%%*
http:刚刚的信息搞掉了,你再给我发一份呗
server:这是他的家庭住址,电话...@#&&%%*
http:托尼老师叫什么来着?
server:这是他的家庭住址,电话...@#&&%%*
http:托尼老师是做什么?
server:这是他的家庭住址,电话...@#&&%%*
--连接关闭--

由此可知,客户端也是是属鱼的,你给他说的东西他转眼就忘了,我们可以看到长连接对比与短连接来说的话,我们连接了长连接的话,我们就可以重复使用了,避免了频繁的请求

短轮询

http:蓝翔技校招生了吗?
server:...没有
http:蓝翔技校招生了吗?
server:...没有
http:蓝翔技校招生了吗?
server:...没有
http:蓝翔技校招生了吗?
server内心os:你怎么就不问问新东方呢?

短轮询的话很简单,就是每隔几秒就向服务器发送一次请求用于获取数据

长轮询

http:蓝翔技校招生了吗?没有的话等招生了再告诉我
...十年后
server:蓝翔技校招生了,三百个机位不锈钢,五百个技工技术强@#$@#!!@#
北大青鸟http:???

长轮询的话,发送一次请求后,就等到服务器有响应时才进行返回

好了,关于webSocket的姿势你get到了吗?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,926评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,465评论 19 139
  • 原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-WebSo...
    敢梦敢当阅读 9,025评论 0 50
  • 这样晴朗的天 蓝色翩翩的牛仔衫 你微笑着脸 人群里与我擦肩 像极了某个从前 还有你瞪着狗屎看的眼 把路人都带偏 你...
    烟雨浅川阅读 270评论 2 1
  • A电器公司看到某卫生局采购医用电冰箱的公开招标公告,要求供应商必须具有医疗器械生产或者经营许可证,并且在购买招标...
    明月装饰了你的窗子阅读 146评论 0 0

友情链接更多精彩内容