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

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

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

HTTP - >长轮询 - > WebSockets

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

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

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

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

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

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

然后怎样呢?

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

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

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

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

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

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

什么是WebSockets!?相关推荐

  1. websockets_如何将WebSockets与AWS API Gateway和Lambda一起使用来构建实时应用程序

    websockets by Janitha Tennakoon 通过詹妮莎·特纳库恩 如何将WebSockets与AWS API Gateway和Lambda一起使用来构建实时应用程序 (How to ...

  2. JavaScript 工作原理之五-深入理解 WebSockets 和带有 SSE 机制的HTTP/2 以及正确的使用姿势(译)...

    原文请查阅这里,略有改动,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第五章. 现在 ...

  3. WebSockets[翻译]

    2019独角兽企业重金招聘Python工程师标准>>> 原文:WebSockets WebSockets WebSockets是一个可以被基于允许双向全双工通信协议的Web浏览器使用 ...

  4. HTML5(WebSockets)的脆弱性?

    尽管还不是官方的标准, HTML5 的使用和影响力成长迅速. 无论是 Web.移动.或甚至SOA, 似乎都有一个HTML5的整合战略.然而,HTML5不仅仅是一个原有的标记语言的更新,因为它包含了其他 ...

  5. 《Java Web高级编程——涵盖WebSockets、Spring Framework、JPA H

    2019独角兽企业重金招聘Python工程师标准>>> <Java Web高级编程--涵盖WebSockets.Spring Framework.JPA Hibernate和S ...

  6. 使用websockets,后台实时发数据,前台实时接受数据,并集成到Django

    后端代码 #!/usr/bin/env python# WS server that sends messages at random intervalsimport asyncio import w ...

  7. WebSockets 简介

    WebSockets 简介 mozilla WebSocket API 为Phonegap Android平台增加websocket支持,使默认成为socket.io首选通道选择 HTML5学习笔记( ...

  8. dart系列之:实时通讯,在浏览器中使用WebSockets

    文章目录 简介 dart:html中的WebSockets 创建一个WebSocket WebSocket的状态 发送消息 处理WebSocket事件 总结 简介 web客户端和服务器端通信有两种方式 ...

  9. Python3+WebSockets实现WebSocket通信

    一.说明 1.1 背景说明 前端时间同事说云平台通信使用了一个websocket的东西,今天抽空来看一下具体是怎么个通信过程. 从形式上看,websocket是一个应用层协议,socket是数据链路层 ...

  10. python发送json数据_在Websockets上发送JSON

    我有一个简单的Python tornado Websockets服务器,从JavaScript客户端接收消息.我正在尝试发送JSON数据,我找到的唯一解决方案是将JSON对象转换成字符串JSON,发送 ...

最新文章

  1. HTTP/HTTPS抓包工具-Fiddler
  2. TCP/IP详解 笔记八
  3. python中索引是从什么开始_python索引从0开始,那负数索引算什么?三秋道果说python...
  4. Hbase总结(四)- Hbase与传统数据库的区别
  5. 如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处
  6. Gym - 100952H--H. Special Palindrome--dp整数划分(模板)
  7. python提取字符串中数字_EXCEL数字在字符串中间怎么提取?
  8. 男女薪酬差异扩大 2018年女性薪酬不及男性8成?
  9. PHP常用函数之字符串处理
  10. 深度残差网络_深度残差收缩网络:(三) 网络结构
  11. android Service Binder交互通信实例
  12. Effective C++条款05:了解C++默默编写并调用哪些函数
  13. catalina 无法验证macos_拿什么拯救你,我的macOS Catalina——完整版补救措施来啦...
  14. JavaScript高级程序设计学习笔记(一)
  15. 前端代码规范【结合实际和官方】
  16. 关于“UDP转发被禁用”的解决办法
  17. 量子计算(三):有哪些机构或公司参与量子计算的研发
  18. wps软件打不开共享超链接_wps excel 超链接 打不开 怎么解决?
  19. 祝大家新年快乐,前兔似锦!
  20. 用户如何向计算机安装软件,按计算机安装同步应用

热门文章

  1. 毕业设计 STM32单片机的GPS定位系统 - 物联网
  2. windows station和desktop
  3. 什么是脏数据,缓存中是否可能产生脏数据,如果出现脏数据该怎么处理?
  4. CMA检测报告中,CNAS,CMA分别代表的意义
  5. 网易云音乐Android一面面经
  6. echarts2 饼图标签文字换行
  7. A星寻路算法详解(完整代码+图片演示)
  8. 景区门票怎么在线上渠道分销?
  9. MATLAB —— 散点图绘制
  10. matlab各种分布计算公式,SPC常见项目的计算公式