Websocket

一、基础知识

全双工、半双工和单工是通信系统中的三种数据传输模式,它们描述了数据在通信链路上的传输方式和方向。

  • 全双工:数据可以同时在两个方向传输,双方可以同时发送和接收数据。这是双向通信最先进的模式,允许同时进行的双向交流。
  • 半双工:数据可以在两个方向上传输,但不能同时进行。这意味着通信双方可以轮流发送和接收数据,但在某一时刻,只有一方能够发送数据。
  • 单工:数据只能在一个方向上传输,不能进行双向通信。这意味着一方只能发送数据,另一方只能接收数据,通信是单向的。

二、什么是Websocket?

一种实时通讯方案允许服务器主动发送信息给客户端

WebSocket协议是基于TCP的一种新的网络协议,是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术,它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。

三、为什么使用WebSocket?

在WebSocket出现之前,我们有一些其它的实时通讯方案,比较常用的有轮询,长轮询,流,还有基于Flash的交换数据的方式,接下来简单介绍下各种通信方式的特点。

① 轮询
这是最早的一种实现实时Web应用的方案;原理比较简单易懂,就是客户端以一定的时间间隔向服务器发送请求,以频繁请求的方式来保持客户端和服务器端的数据同步。但是问题也很明显:当客户端以固定频率向服务器端发送请求时,服务器端的数据可能并没有更新,这样会带来很多无谓的请求,浪费带宽,效率低下。

② 长轮询
长轮询是对定时轮询的改进和提高,目地是为了降低无效的网络传输。客户端像传统轮询一样从服务端请求数据,服务端会阻塞请求不会立刻返回,直到有数据或超时才返回给客户端,然后关闭连接,客户端处理完响应信息后再向服务器发送新的请求。当然,如果服务端的数据变更非常频繁的话,这种机制和定时轮询比较起来没有本质上的性能的提高。

③ iframe流
iframe流方式是在页面中插入一个隐藏的iframe,利用其src属性在服务器和客户端之间创建一条长连接,服务器向iframe传输数据(通常是HTML,内有负责插入信息的javascript)来实时更新页面。

④ WebSocket
WebSocket是一种全新的协议,随着HTML5草案的不断完善,越来越多的现代浏览器开始全面支持WebSocket技术了,它将TCP的Socket(套接字)应用在了webpage上,从而使通信双方建立起一个保持在活动状态的连接通道。

参考资料

总:https://github.com/YunaiV/SpringBoot-Labs

websocket https://www.iocoder.cn/Spring-Boot/WebSocket/?github

posted @   zhegeMaw  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示