什么是WebSockets!?

article/2025/10/16 0:42:23

到目前为止,我们已经深入到实时世界,因为许多应用程序使用实时数据。 现在正是以技术立场解释所有导致这一点的事件的时候了。 所以,这里......

目前,应用程序正在从利用数据库中的陈旧数据或在实际事件之后的实时体验中事件触发后即时创建的数据转变。 我们在实时应用程序中首先想到的是 WebSockets 。 但是,尽管很多人不断在技术圈中围绕这个术语,但实际上似乎存在与其意义和工作相关的巨大误解。

让我们破解行话并了解正在发生的事情!

HTTP - >长轮询 - > WebSockets

回到当天,HTTP的无状态请求 - 响应机制非常适合当天的用例,让任何两个节点通过互联网进行通信。 由于它都是无状态的,即使连接断开,您也可以轻松地从那一点恢复通信。

1*KOYwk07g7IMY18EFJHjZHQ.png

然而,随着应用程序转向实时实现,即确保在现实世界中创建共享数据时的最小延迟,传统的请求 - 响应周期被证明是一个巨大的开销。 为什么? 高频请求 - 响应周期导致更多延迟,因为每个周期都需要每次都建立新连接。

从逻辑上讲,下一步是为相同数量的数据流最小化这些周期的方法。 解? 长轮询!

1*ApYLwLrxH8_HyM1W0zG6TA.png

通过长轮询,底层TCP套接字连接可以持续一段时间,即连接可以保持打开状态比平时更长。 这不仅使服务器有机会整理多个数据以在单个响应中发回,而不是在单个响应中发送,而且,它几乎完全消除了由于缺少数据而返回空响应的情况。现在服务器只要有实际回馈的数据就可以返回响应。

但是,即使长轮询技术也涉及连接建立和频繁的请求 - 响应周期,类似于传统的HTTP,当然,这会导致更多的延迟。

对于大多数实时应用程序而言,数据的速度(最接近最接近的毫秒数)绝对至关重要,因此上述两种选项均未被证明是有用的。

然后怎样呢?

自从我通过提及WebSockets开始撰写文章以来,你显然会猜到我得到了什么。

因此,与HTTP不同,WebSockets是一种通过TCP工作的有状态通信协议。

1*ejQT-XvATbyoLP_XmCf_ag.png

通信最初是作为HTTP握手开始的,但如果两个通信方同意继续通过WebSockets,则连接只是提升,从而产生全双工,持久连接。 这意味着连接在应用程序运行时的整个持续时间内保持打开状态。 这为服务器提供了一种启动任何通信并将数据发送到预订客户端的方法,因此他们不必继续发送询问新数据可用性的请求。

1*rv5p-D6L6W-Xr_v17ni1cA.gif

实际应用程序实际上发生了很多事情,而不是我在本文中简单总结的内容。 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31557424/viewspace-2219832/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31557424/viewspace-2219832/


http://chatgpt.dhexx.cn/article/E8e5YZ3j.shtml

相关文章

WebSockets介绍

Web sockets定义为在servers和clients之间的双向连接。意味着servers和clients可以同时交流并发送数据。这种协议是从底层就是双工连接。Web sockets技术上得到了质的飞跃。 握手是一个过程,确保server与client同步。握手是Web Socket protocol的基础概念。 下面的图…

websockets_将WebSockets与Node.js结合使用

websockets WebSockets are an alternative to HTTP communication in Web Applications. WebSocket是Web应用程序中HTTP通信的替代方法。 They offer a long lived, bidirectional communication channel between client and server. 它们在客户端和服务器之间提供了长期的双…

各大公司数据结构与算法面试题解答(一)

还有一年就要找工作了,从现在开始找些公司的数据结构和算法的题来做一做,不定时贴出笔试面试题代码。 1.创新工场: 求一个数组的最长递减子序列比如{9,4,3,2,5,4,3&…

数据结构面试题整理

一 数据结构 1.你熟悉什么数据结构? 数组 链表 栈 队列 哈希 二叉树 二叉查找树 二叉堆 b树 b树 2.b树 b树 b*树 b和b都是节点可以有很多子节点,区别是b树所有的节点都可以存储关键字,而b树只有叶子节点存储关键字,适用于数据库…

数据结构与算法三十题,弄懂这些面试就够了!

https://www.toutiao.com/a6649963989537128967/ 2019-01-24 15:36:35 国外 IT 教育学院 Educative.io 创始人 Fahim ul Haq 写过一篇过万赞的文章《The top data structures you should know for your next coding interview》,总结了程序员面试中需要掌握的 8 种数据结构知识…

数据结构与算法面试知识点汇总(超全)

文章目录 一、哈希函数和哈希表01 哈希函数02 哈希表 二、布隆过滤器三、一致性哈希四、并查集01 具体实现02 优化03 代码实现 五、前缀树(trie树)六、B树和B树七、线段树01 线段树的优势02 线段树实现 一、哈希函数和哈希表 01 哈希函数 哈希函数&…

《数据结构》十道链表经典面试题多种方法深度解析

目录 ⛰️一、题目解析 🗻1.1删除链表中等于给定值 val 的所有节点(力扣) 🗻1.2反转一个单链表。(力扣) 🗻1.3给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有…

数据结构和算法常见面试问题总结,含答案

0. 写在前面 总导航在此 这些问题是我备考数据结构和算法的过程中,详细总结的常见面试问题和答案。逐个搜索并记录下来,花了很大的精力!如果想要获取源文件的话,可以关注我的微信公众号:小梁说代码,获取嘿…

(六)数据结构面试必问

什么是链表、队列、栈? 链表: 当需要存储多个相同数据类型的时候,可以使用数组存储,数组可以通过下标直接访问,但数组有个缺点就是无法动态的插入或删除其中的元素(特别是操作第一个位置上的元素&#xff…

数据结构常见面试题

链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中…

面试中常见的数据结构

上次在面试时被面试官问到学了哪些数据结构,那时简单答了栈、队列/(ㄒoㄒ)/~~其它就都想不起来了,今天有空整理了一下几种常见的数据结构,原来我们学过的数据结构有这么多~ 首先,先来回顾下C语言中常见的基本数据类型吧O(∩_∩)O …

数据结构算法常见面试考题

(1) 红黑树的了解(平衡树,二叉搜索树),使用场景 把数据结构上几种树集中的讨论一下: 1.AVLtree 定义:最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为…

八大数据结构及常见面试题

几乎所有的问题都需要面试者对数据结构有深刻的理解。无论你是初入职场的新兵(刚从大学或者编程培训班毕业),还是拥有几十年经验的职场老鸟。 即便是对于一些非常基础的工作来说,学习数据结构也是必须的。那么,就让我们先从一些基本概念开始入…

数据结构面试、数据结构考研复试——常见问题以及回答

说明:这些是自己整理回答的答案 可以借鉴 也可能存在错误 欢迎指正 文章目录 逻辑结构与物理结构的区别算法常见的数据结构链表存储结构和顺序存储结构的区别数组和链表的区别头指针和头结点的区别线性链表判断整个链表是否有环,如何找到这个环单链表和…

架构设计分布式数据结构与算法面试题(2020最新版)

Java面试总结(2021优化版)已发布在个人微信公众号【技术人成长之路】,优化版首先修正了读者反馈的部分答案存在的错误,同时根据最新面试总结,删除了低频问题,添加了一些常见面试题,对文章进行了…

数据结构面试题以及答案整理

参考网络整理的一些问题 一、什么是数据结构? 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。结构包括逻辑结构和物理结构。 数据的逻辑结构包括4种 (1)集合:数据元素之间除了有相同的数据类…

数据结构面试常见问题总结

数据结构面试常见问题总结 写在前面 本文记录了一些数据结构面试常见问题,本意用于考研复试,以下面试题为网上整理的问题以及自己加入的一些问题,答案仅供参考! Q:数据结构三要素 A:逻辑结构、物理结构、…

mysql 驱动包 mysql-connect-java

mysql的驱动包 mysql-connect-java 内部封装了jdbc: jdbc(java database connectivity):本身是由一组接口组成 , 可以使得Java编译来访问各种数据库无需自己实现接口,这些接口的实现类由第三方数据库厂商实现 jdbc的核心 接口或类作用DriverManager类创建数据库的连接Conne…

Mysql 驱动包mysql-connector-java-8.0.25.jar下载

安装地址 https://downloads.mysql.com/archives/c-net/ 按需选择所需版本,点击Download即可下载; 网盘下载地址: 需要的小伙伴,请关注微信公众号: Transkai, 或者扫描下方公众号二维码,回复关键字:mysql驱…

下载MySQL驱动程序

下载步骤: 第一步:进入MySQL官方网站,并选择DOWNLOADS和Community。 第二步:选择MySQL Connectors 第三步:选择Connector/J 第四步:进入下面界面,找到下面的Generally available (GA)…