0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是WebSocket协议?

亿佰特物联网应用专家 2023-08-25 08:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

通常,打开某个网页,我们每点击一次网页上的某个选项,前端就会发送一次HTTP请求,网站返回一次HTTP响应。这种由客户端主动请求,服务器响应的方式满足大部分网页的功能场景。但这种情况下,服务器不会主动给客户端发消息。而类似网页游戏这样的场景,是需要客户端和服务器之间互相主动发大量数据的。
8a7d782e-42dd-11ee-8e12-92fbcf53809c.png

WebSocket是什么?

WebSocket 是一种用于在单个 TCP 连接上进行全双工通信的网络协议。它使用类似于 HTTP 的握手来建立连接,然后使用单独的持久连接来进行通信。这种方式使得 WebSocket 可以在浏览器和服务器之间进行实时通信,而不需要多次发送 HTTP 请求来获取数据。这意味着连接是持久的,它一直保持打开,直到有一方主动关闭连接。这使得 WebSocket 非常适合用于实时应用程序,因为它不需要不断地建立和关闭连接。
WebSocket怎样建立连接?WebSocket 连接通常在客户端(例如浏览器)和服务器之间建立。客户端发送一个 HTTP 请求来建立连接,然后服务器返回一个确认消息,表示已建立连接。之后,客户端和服务器可以通过这个连接进行双向通信。客户端可以向服务器发送消息,服务器也可以向客户端发送消息。消息可以是任意的字节数组,并且可以使用任意的格式进行编码。8a9276e8-42dd-11ee-8e12-92fbcf53809c.jpg

建立Websocket连接

WebSocket 是一种必不可少的客户端—服务器通信工具,需要充分了解其实用性并避免使用场景才能从其最大潜力中获益。

WebSocket的实际用途

最常见的用途是在实时应用程序开发中,它有助于在客户端持续显示数据。由于后端服务器不断发回此数据,WebSocket 允许在已打开的连接中不间断地推送或传输此数据,使此类数据传输更快,并利用了应用程序的性能。
聊天应用程序开发人员在一次性交换、发布、广播消息等操作中调用 WebSocket 。由于使用相同的 WebSocket 连接来发送或接收消息,因此通信变得简单、轻量、快捷。在进行游戏应用程序开发的同时,服务器必须不间断地接收数据,而不要求刷新 UI。WebSocket在不影响游戏应用程序 UI 的情况下实现了这一目标。

从上述几个示例中,我们大概知道了在什么情况下不太适合使用,例如数据交互周期很长,甚至几小时一次的情况或只需要一次性处理数据时,不应采用 WebSocket协议。在这些情况下,使用 HTTP 协议是一个明智的选择。由于 HTTP 和 WebSocket 都用于应用程序通信,因此人们常常感到困惑,很难从这两者中选择一个。

WebSocket 与 HTTP 的选择

WebSocket 是一种框架双向协议。与此相反,HTTP 是一种单向协议,作用于 TCP 协议之上。由于WebSocket协议能够支持不间断的数据传输,因此主要用于实时应用程序开发。HTTP 是无状态的,用于开发RESTful和 SOAP 应用程序。SOAP 仍然可以使用 HTTP 来实现,但是 REST 被广泛传播和使用。
8ac08010-42dd-11ee-8e12-92fbcf53809c.png

在 WebSocket 中,通信发生在两端,这使其成为更快的协议。在 HTTP 中,连接是在一端建立的,这使得它比 WebSocket 有点慢。WebSocket 使用统一的 TCP 连接,需要一方终止连接。在它发生之前,连接保持活动状态。HTTP 需要为单独的请求建立不同的连接。请求完成后,连接会自动断开。 8add712a-42dd-11ee-8e12-92fbcf53809c.jpg

HTTP 长轮询

现今对网络数据安全性也存在更多需求,WebSocket 连接使用的是标准的 TCP 连接,因此它可以在任何支持 TCP 的网络上使用。它使用的是 ws:// 和 wss:// 协议前缀,这些前缀可以与任何域名或 IP 地址结合使用。WebSocket 连接是可以加密的,可以使用 TLS(Transport Layer Security,传输层安全)协议来保护数据的安全。这种加密连接使用的是 wss:// 协议前缀,与不加密的连接使用的 ws:// 协议前缀相区别。除此之外,WebSocket 还支持安全握手协议(Secure Handshake Protocol),这使得它可以在浏览器和服务器之间进行加密通信。总的来说,WebSocket 具有较高的安全性,可以保护数据的安全。另外,需要注意的是,WebSocket不是基于HTTP的新协议,因为WebSocket只有在建立连接时才用到了HTTP,升级完成之后就跟HTTP不再有任何关系。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1302

    浏览量

    73618
  • HTTP
    +关注

    关注

    0

    文章

    531

    浏览量

    34834
  • 网页
    +关注

    关注

    0

    文章

    75

    浏览量

    19788
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是PD快充协议? 什么是QC快充协议? 这些快充协议都有哪些特点

    在充电技术里,协议是实现电子设备之间有效通信的关键,其中PD协议(Power Delivery)和QC协议(Quick Charge)是极为常见的充电协议,经常被标注在充电设备上,那么
    的头像 发表于 11-22 11:20 1643次阅读
    什么是PD快充<b class='flag-5'>协议</b>? 什么是QC快充<b class='flag-5'>协议</b>? 这些快充<b class='flag-5'>协议</b>都有哪些特点

    RTC技术重塑AI玩具体验,实时交互的未来演进之路

    ,基于QUIC协议优化的RTC技术凭借80ms级低延迟、30%抗丢包率的性能突破,为玩具赋予了更自然的沟通能力,其发展趋势更预示着人机交互的全新可能。   RTC与AI大模型的深度融合正在重构交互底层逻辑。过去依赖WebSocket协议
    的头像 发表于 11-21 14:19 1735次阅读

    SIP协议和私有协议广播区别

    电子发烧友网站提供《SIP协议和私有协议广播区别.docx》资料免费下载
    发表于 11-06 16:31 1次下载

    一文吃透WebSocket:智能物联网通信的入门与实战全攻略!

    想在智能物联网项目中实现设备与平台的实时“对话”?WebSocket是你的最佳选择。本文作为一份完整的学习与实战攻略,从基础概念讲起,逐步深入到编码实践,涵盖协议细节、开发框架与常见问题
    的头像 发表于 10-15 18:16 145次阅读
    一文吃透<b class='flag-5'>WebSocket</b>:智能物联网通信的入门与实战全攻略!

    智能物联网实时通信实战:WebSocket技术解析 !

    在设备海量接入、数据高频交互的物联网时代,WebSocket以其低延迟、双向通信的优势脱颖而出。本文全面解析其在智能物联网中的技术实现路径,涵盖协议分析、服务端/客户端开发、心跳保活与错误处理,并
    的头像 发表于 10-15 18:16 811次阅读
    智能物联网实时通信实战:<b class='flag-5'>WebSocket</b>技术解析 !

    哪些协议是工业通信协议?#三格电子

    通信协议
    三格电子科技
    发布于 :2025年08月27日 14:16:07

    MDB协议是什么?

    InBox 产品可以与MDB协议的设备进行对接,这个协议是哪个国家的?哪个协会推出来的?协议的具体内容是什么?如何进行对接?
    发表于 08-07 07:36

    NVMe协议研究扫盲

    。SSD最初遵循为HDD设计的现有主机接口协议,例如串行高级技术附件(Serial Advanced Technology Attachment, SATA)和串行附加SCSI(SAS)协议,随着SSD
    发表于 06-02 23:28

    浅谈HART协议和RS485协议的区别

    HART协议和RS485协议都是用于工业领域通信的协议,但它们有不同的应用场景和特点。
    的头像 发表于 03-27 10:07 2195次阅读
    浅谈HART<b class='flag-5'>协议</b>和RS485<b class='flag-5'>协议</b>的区别

    AWTK-WEB 快速入门(6) - JS WebSocket 应用程序

    WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用Javacript语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程
    的头像 发表于 02-26 11:42 632次阅读
    AWTK-WEB 快速入门(6) - JS <b class='flag-5'>WebSocket</b> 应用程序

    移远通信AI玩具整体解决方案全面升级:融合火山引擎RTC大模型,打造实时交互新体验

    一体,可为玩具的智能化升级提供从硬件、算法到平台的一站式服务。 移远通信AI玩具整体解决方案率先支持火山引擎豆包RTC(实时音视频)大模型,现已全面具备市场交付能力。与基于webSocket协议的AI玩具方案相比,基于RTC协议
    发表于 02-21 09:50 499次阅读
    移远通信AI玩具整体解决方案全面升级:融合火山引擎RTC大模型,打造实时交互新体验

    移远通信AI玩具整体解决方案全面升级:融合火山引擎RTC大模型,打造实时交互新体验

    、算法到平台的一站式服务。移远通信AI玩具整体解决方案率先支持火山引擎豆包RTC(实时音视频)大模型,现已全面具备市场交付能力。与基于webSocket协议的AI
    的头像 发表于 02-20 19:06 894次阅读
    移远通信AI玩具整体解决方案全面升级:融合火山引擎RTC大模型,打造实时交互新体验

    AWTK-WEB 快速入门(5) - C 语言 WebSocket 应用程序

    导读WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用C语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程序先安装
    的头像 发表于 02-19 11:49 890次阅读
    AWTK-WEB 快速入门(5) - C 语言 <b class='flag-5'>WebSocket</b> 应用程序

    iic协议与其他总线协议比较

    在现代电子系统中,总线协议扮演着至关重要的角色,它们允许不同的电子组件之间进行通信和数据交换。I2C协议是其中一种流行的总线协议,以其简单性和高效性而闻名。 1. I2C协议概述 I2
    的头像 发表于 02-05 13:36 1213次阅读

    MTP协议与FTP协议的比较分析

    在计算机网络中,文件传输协议(FTP)和媒体传输协议(MTP)是两种不同的数据传输协议,它们各自有不同的应用场景和特点。以下是对这两种协议的比较分析。 1. 定义与目的 FTP
    的头像 发表于 01-03 10:34 1217次阅读