WebSocket的优点和缺点:一文详解。

WebSocket 的优缺点

WebSocket 协议是一种双向通信协议,它使用单个 TCP 连接实现全双工通信,这使它比传统的 HTTP 协议更有效率。

WebSocket 优点

  • 双向通信: WebSocket 协议支持双向通信,使服务器和客户端之间的通信更加方便和快捷。
  • 实时性: 由于 WebSocket 协议使用单个 TCP 连接实现全双工通信,因此它提供了实时通信,使服务器和客户端之间的通信速度更快。
  • 较少的通信开销: 相比于 HTTP 协议,WebSocket 协议的通信开销较少,因为 HTTP 协议需要频繁在请求和响应之间进行建立和断开连接。前面我们写过相关对比:WebSocket 与 Socket、TCP、HTTP 的关系及区别
  • 可扩展性: WebSocket 协议可以轻松地扩展,从而满足更多不同应用程序的需求。

WebSocket 缺点

  • 兼容性: WebSocket 协议不是所有浏览器都支持,尤其是在旧版浏览器中可能会出现兼容性问题。
  • 安全性: 由于WebSocket 协议的双向通信机制,它可能会面临安全隐患,例如 XSS 和 CSRF 攻击等。
  • 服务器需求: WebSocket 协议需要服务器支持,这意味着需要更高效的服务器硬件和软件。
  • 数据包大小的限制: WebSocket 协议发送的数据包不能超过 2GB。

调试 WebSocket 服务

如果你正在编写 WebSocket 服务并需要进行调试,我们使用 Apifox,工具来调试 WebSocket 服务~

谷歌插件

Apifox 有 Web端 和 客户端,如果你使用的是 Web端,想要调试本地服务,需要安装 Apifox 的 谷歌插件。

下载地址:Apifox 谷歌浏览器插件

新建 WebSocket 请求

WebSocket 是客户端和服务端之间的长链接,因此你需要在 Apifox 中创建一个 WebSocket 请求,以便跳转到 Apifox 界面并填写相应的请求信息。

  1. 点击创建按钮
  2. 填入 WebSocket 服务的地址
  3. 可以选择填写 Message 和 Params

Message 和 Params

Message

在 Message 中,你可以填写要传递到服务端的信息。服务端将接收你发送的信息。

Params

在传输过程中,你也可以携带参数,可以通过在地址上添加查询参数完成,可以携带的数据类型包括。

  • string
  • integer
  • number
  • array

保存请求

写完所需信息之后,可以点击 保存按钮,进行保存,方便下次可继续调用。

连接、发送 WebSocket 请求

连接 WebSocket 服务

我们想要跟服务端进行 WebSocket 通信,就需要先建立一个 WebSocket 连接,我们只需要点击 连接 按钮。

连接成功之后,Apifox 有成功的提示。

服务端那边也会因为连接成功,而做出响应。

发送 WebSocket 请求

接着我们就可以跟服务端进行 WebSocket 通信了。

我们可以使用 Apifox 点击发送按钮向服务端进行发送 Message、Params。

与 WebSocket 服务通信

发送之后,服务端也可以向客户端发送信息,例如我这里,我设置服务端每秒向客户端发送当时的时间戳~

这就是 Apifox 的 WebSocket 功能,非常方便。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch 中映射参数doc_values 和 fielddata分析比较

一、doc_values 默认情况下,大部分字段是索引的,这样让这些字段可被搜索。倒排索引(inverted index)允许查询请求在词项列表中查找搜索项(search term),并立即获得包含该词项的文档列表。 倒排…

vscode 格式化代码后反而出现红色波浪线格式报错

表现: vscode 代码文件格式化之后,反而出现红色波浪线,提示 应该换行/缩进不正确 等等格式不规范之类的信息。 原因: 因为同时开启了两个格式化插件,且两者的规则有冲突。 就我自己的情况而言:格式化代…

漫谈广告机制设计 | 【预告】万剑归宗:机制设计提高平台广告收入的绝招

读者们好,新年快乐,祝大家新的一年工作顺利,万事如意。 假期更新了两篇文章oCPC实践录 | 以基木鱼为例谈线索类有效转化的设计与智能客服的问题和oCPC实践录 | 目标ROI的出价与转化回传调控算法,欢迎讨论、评论、点赞、分享、转发…

2023年为何YOLO成为最热门视觉检测技术?猫头虎带您揭秘其背后的原因!

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

查询运行的java程序线程总数

(1)方法一 ps -ef|grep java pstree -p pid|wc -l 安装pstree包,yum install psmisc (2)方法二 top -H -p pid

互联网分布式应用之RabbitMQ

RabbitMQ Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. RabbitMQ介绍安装 2. Rabbi…

人工智能在金融领域的应用存在的4大挑战

金融服务供应商应该有计划地应对AI面临的难题 金融行业投资人工智能热潮带来有关数据安全和透明度的新问题。由于数据管理实践随着新的 AI 解决方案的引入而不断发展,应对这些新问题以及金融服务领域 AI 面临的其他挑战尤为重要。各组织必须认识到可能面临以下挑战…

2024腾讯云轻量应用服务器详细介绍_轻量全解析

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器,CPU内存带宽配置高并且价格特别便宜,大带宽,但是限制月流量。轻量2核2G3M带宽62元一年、2核2G4M优惠价118元一年,540元三年、2核4G5M带宽218元一年,756元3年、…

指令周期流程图相关题目

已知CPU结构如下图所示,其中包括一个累加器AC、一个状态寄存器和其他几个寄存器。各部分之间的连线表示数据通路,箭头表示信息传递方向。试完成以下工作:①写出图中四个寄存器A、B、C、D的名称和作用;②简述完成指令ADD Y的数据通…

DASS最新论文整理@2023.12

CVPR 2023 论文来源:https://openaccess.thecvf.com/CVPR2023?dayall 1 Planning-oriented Autonomous Driving 面向规划的自动驾驶 (Best papper) 项目地址:https://opendrivelab.github.io/UniAD/ 现代自动驾驶系统的特点是按顺序执行模块化任务…

【Linux】常用的基本命令指令②

前言:前面我们学习了Linux的部分指令,今天我们将接着上次的部分继续将Linux剩余的基本指令. 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的学习 👈 💯代码仓库:卫卫周大胖的学习日记…

ROS学习笔记(8)进一步深入了解ROS第二步

0.前提 在上一讲中我提到过该系列是基于宾夕法尼亚大学工程学院的ROS公开课,系列文章将来源于公开课中的课后习题。该系列可以很好的帮助大家更加深入的了解ROS的一些概念。(有效面对HR的提问。) 1. (C)What is a nodehandle object? Can we…

jmeter参数化的三种方式

1.用户定义变量 使用变量: ${变量名} 这个变量是全局变量,也就是在下面子节点中都可以使用; 使用场景:两个账号分别有不同的权限,A经办,B审核。等。。。 2.CSV数据文件设置 3.函数

感觉软件测试很简单,但为何这么多劝退的?

上一个说软件测试简单的,已经被面试官问死了。。。 现在已经过了 ”不会但我会学“ 就能感动面试官的时代,随着供需关系的变化,不论是对于面试官还是面试者,面试的成本越来越高。为了筛选到更优秀的程序员,面试官们可谓…

Go 编程必备:bufio 库的全面指南与实战技巧

Go 编程必备:bufio 库的全面指南与实战技巧 引言bufio 库概览bufio.Readerbufio.Writerbufio.Scanner 深入 bufio.Readerbufio.Reader 的基本使用高级功能应用场景 探索 bufio.Writerbufio.Writer 的基本使用高级功能应用场景 运用 bufio.Scannerbufio.Scanner 的基…

期末成绩出炉,这才是发成绩的正确打开方式

期末考试结束后,学生们和老师们都在期待着成绩的公布。对于学生们来说,这是一次检验自己学习成果的机会;对于老师们来说,这是评价自己教学效果的机会。然而,在现实中,很多学校和老师在发成绩时却存在一些问…

C++ 实现对战AI五子棋

个人主页:日刷百题 系列专栏:〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 🌎欢迎各位→点赞👍收藏⭐️留言📝 ​ ​ 前言: 为了能够快速上手一门语言,我们往往在学习了基本语法后&#x…

vue保姆级教程----深入了解 Vue3路由守卫

📢 鸿蒙专栏:想学鸿蒙的,冲 📢 C语言专栏:想学C语言的,冲 📢 VUE专栏:想学VUE的,冲这里 📢 CSS专栏:想学CSS的,冲这里 &#x1f4…

非英专生雅思首考 8 分经验贴

非英专生雅思首考 8 分经验贴 备考材料1.网站2.微信公众号3.APP4.PDF资料5.纸质教辅书 四个单项听力阅读写作口语注意事项 又来了,好文当分享!如侵删。 背景:某工科学校经管类专业学生,7月份刚毕业。四级643,六级604。…

Netty实战(待完善)

Netty组件 1. Bootstrap, ServerBootstrap Netty 中 Bootstrap 类是客户端程序的启动引导类,ServerBootstrap 是服务端启动引导类。 2. NioEventLoop, NioEventLoopGroup NioEventLoop 中维护了一个线程和任务队列,支持异步提交执行任务,…