WebSocket学习

2023-11-12

从搜索引擎搜索资料:https://www.runoob.com/html/html5-websocket.html

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。

WebSocket 实例

WebSocket 协议本质上是一个基于 TCP 的协议。为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebSocket学习 的相关文章

  • shell脚本中 set -ex

    刚刚学会了一个很实用的shell命令set ex 在这里分享一下 set e 先说说set e 这个参数的含义是 当命令发生错误的时候 停止脚本的执行 通常来说 我们会习惯于使用 来实现这样的功能 比如 echo 1 rm non exis
  • computed和watch的区别?(Vue面试题)

    有两种答法 大家自行参考 也可以结合起来 第一种 conputed 能完成的功能 watch 都可以完成 watch 能完成的功能 computed 不一定能完成 例如 watch 可以进行异步操作 两个重要的小原则 所有被 Vue 管理的
  • 用Java实现扑克牌游戏——简易炸金花

    一 思想呈现 首先 我们需要创建扑克牌 用字符串型定义扑克牌的花色 用整数型定义扑克牌上的数字 便于扑克牌的保存 再通过构造方法产生对应的对象 对外提供getter和setter方法便于使用 然后重写方法 使结果返回对应的花色与数字 接着来
  • 谷歌翻译网址

    个人总结的几个谷歌工具直连地址 http translate google cn hl zh CN http translate google cn http translate google cn hl cn
  • k8s集群nfs网络持久卷存储实现

    1 nfs介绍和作用 nfs卷能将 NFS 网络文件系统 挂载到Pod 中 不像 emptyDir 那样会在删除 Pod 的同时也会被删除 nfs卷的内容在删除 Pod 时会被保存 卷只是被卸载 2 pv和pvc介绍 pv持久卷是集群中的一
  • C语言学习笔记(二)————数据类型相关,单双引号区别

    1 c语言中的数据类型及输出 常用的几种数据类型 输出格式 int 整型 占用4字节 d 打印整型 short 短整型 占用2字节 hd 打印short类型 d也可以 long 长整型 Windows为4字节 也可以理解32位编译器中占4字
  • cookie实现记住密码

    一 什么是Cookie cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段 Cookie的目的就是为用户带来方便 为网站带来增值 虽然有着许多误传 事实上Cookie并不会造成严重的安全威胁 Cookie永远不会以任何方
  • 舆情&传染病时空分析文献阅读笔记

    1 朱炤瑗 秦昆 关庆锋 罗萍 姚博睿 漆林 周扬 COVID 19期间国家关系交互网络时空分析研究 J 地理与地理信息科学 2022 38 01 15 22 研究问题 COVID 19疫情不断蔓延为国际政治 外交关系等带来深刻影响 目前基
  • React-学习笔记(4-组件生命周期)

    1 旧 的生命周期函数 9个 初始化时调用的生命周期函数 初始化由 ReactDOM render 引发 constructor 就是类的构造器 最早执行的 一生只执行一次 UNSAFE componentWillMount 将要挂载 一生
  • Python爬虫入门 Urllib库的基本使用

    1 分分钟扒一个网页下来 怎样扒网页呢 其实就是根据URL来获取它的网页信息 虽然我们在浏览器中看到的是一幅幅优美的画面 但是其实是由浏览器解释才呈现出来的 实质它是一段HTML代码 加 JS CSS 如果把网页比作一个人 那么HTML便是
  • Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile

    程序报错 Failed to execute goal org apache maven plugins maven compiler plugin 2 3 2 compile 原因是缺少maven compiler plugin插件 在p
  • 【C语言】小白学浮点数

    一 浮点数的概念 浮点数也称小数或实数 C语言中采用 float 和 double 关键字来定义小数 float称为单精度浮点型 double称为双精度浮点型 另外 部分编译器支持更大精度的long double 但不是所有的编译器都支持
  • 你好请问,postman不登录联网怎么使用mock Server

    你好 Postman 具有内置的 mock server 功能 因此无需联网即可使用 要使用 mock server 请执行以下步骤 打开 Postman 应用程序 创建一个新的请求 或打开一个现有的请求 在请求的右上角 单击 更多 按钮
  • pyqt窗口控件跟随窗口大小变化而变化的方法

    要做的很简单 使用qtdesigner对设计的界面配置一下layout 页面布局 即可实现拖拽时界面中控件的放大缩小 这是布局时的几种方式 重点 用designer时要注意 不要选中多个控件然后右键选择layout 要直接在mainwind
  • 恶意代码分析实战07-02

    先peview看看exe程序 注意到这里有两个kernel32 dll 不过仔细看的话 发现其中有一个是假的 名字为kerne132 dll kernel的l被换成了1 而且出现了lab07 03 dll 看来运行这个exe的时候会加载这个
  • 常见JMeter面试题

    1 什么是JMeter JMeter是一种开源的性能测试工具 可以用于测试静态和动态资源 如Web应用程序 数据库 FTP服务器等 2 JMeter可以测试哪些类型的应用 JMeter可以测试各种类型的应用程序 包括Web应用程序 数据库服
  • Python中[:2]、[:,-1]、[-1]、[:-1]、[::-1]、[2::-1]如何使用

    数据准备 import numpy as np X np array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 print X 形成矩阵 1 print X 1 取最后一个元素 2
  • C++检测异常assert()函数

    1 assert 函数使用 assert 一般用于debug下异常检测的功能函数 例如文件打开是否成功 函数形参传入是否理想 变量定义是否正确等 总的来说其作用是如果它的条件返回错误 则终止程序执行 原型定义 include

随机推荐

  • 如何用PHP写一个excel文件并导出

    其实用PHP写一个excel文件并下载下来很容易 这里我们使用了PHPExcel库去实现一个例子
  • Java基础篇--工具类操作之敏感词过滤

    编写敏感词过滤程序 说明 在网络程序中 如聊天室 聊天软件等 经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤 如 性 色情 爆炸 恐怖 枪 军火 等 这些都不可以在网上进行传播 需要过滤掉或者用其他词语替换掉 提示 将用户的聊天内
  • Python3,如何实现CPU的并行计算,那还不简单,5种方式,这篇就搞定。

    多进程实现CPU并行计算 1 引言 2 实战 2 1 多进程模式 2 1 1 定义 2 1 2 multiprocessing 2 1 3 模式 2 1 4 适用场景 2 1 4 代码示例 2 2 执行方法 2 2 1 多线程并发执行 2
  • 高德导航红绿灯为啥能读秒?

    来源 JavaEdge 1 内部员工吐露 2 真正的内幕 免责声明 任何文章不要过度深思 万事万物都经不起审视 因为世上没有同样的成长环境 也没有同样的认知水平 更 没有适用于所有人的解决方案 不要急着评判文章列出的观点 只需代入其中 适度
  • 外汇高概率一分钟交易系统

    交易系统前置 建议资金 10000美金 交易品种 黄金 交易周期 1分钟 使用指标 Ichimoku Kinko Hyo 注 只留上下Kumo 其他线隐藏 MACD MA15 MA55 交易仓位 建议每次交易 0 05手 交易入场条件 MA
  • MATLAB深度学习LSTM 标签分类classificationLayer层,YTrain的设置出错

    问题 使用matlab深度学习工具箱进行标签分类 设置XTrain为输入是n 1的元胞数组 每个元胞数据有6个特征值 YTrain输出是n 1的元胞数组 内容为标签 0 或 1 LSTM层和options设置如下 layers sequen
  • Java-进制转换

    常用的进制转换 十进制转二进制 二进制转十进制 十进制转八进制 八进制转十进制 十进制转十六进制 十六进制转十进制 如果二 八 十六之间想转换可以通过十进制做中间者 import java util Scanner import java
  • 10本编程书籍推荐!带你从入门到精通

    在看书 阅读前 一定先选择一门适合自己的编程语言 对0基础的同学 选择程序设计语言时先了解自己的学习能力 太难的语言 没有一定的基础 以及没有老师讲解 指引 太容易产生挫败感从而放弃 其次 如果自己有一点点明确的目的或需求 那么选一门对自己
  • C++ Windows上键盘拦截

    键盘捕获代码 include
  • Java8 之Optional 的使用

    作为java8的新特性之一 可选在没有接触之前没有感受到过他的魅力 当真正的去用它才感觉到魅力之所在 可选 JAVA新增的工具类 主要是用来解决我们之前 NullPointException的问题 我先贴一段之前的代码 部分截取 真实业务场
  • 利用python开启简单http服务用户文件下载

    当文件传输没有工具时 利用python可以开启http服务 方便文件传输下载 python2 python m SimpleHTTPServer 2222 Serving HTTP on 0 0 0 0 port 2222 已经启动了端口为
  • ChatGPT专业应用:修改SQL为MySQL

    正文共 875 字 阅读大约需要 4 分钟 程序员等必备技巧 您将在4分钟后获得以下超能力 修改SQL为MySQL Beezy评级 A级 经过寻找和一段时间的学习 一部分人能掌握 主要提升效率并增强自身技能 推荐人 Kim 编辑者 Yola
  • STM32-按键输入

    1 硬件连接 1 1 mini 1 2 战舰 1 3 探索者 KEY0 gt PE4 上拉输入 KEY1 gt PE3 上拉输入 KEY2 gt PE2 上拉输入 WK UP gt PA0 下拉输入 按键输入最关键的是对按键的初始化和输入判
  • 数据结构小白之浅析二叉排序树(bst)

    1 什么是二叉排序树 二叉排序树 binary sort tree 简称为bst 是一种无论是查询还是添加都相对较快速的数据结构 相比于数组而言 未排序的数组 可以直接在数组的尾部进行添加数据 但是查找的速度慢 排序的数组 可以使用二分查找
  • Unity常见问题合集

    目录 前言 1 StopCoroutine并不能停止协程 2 GetComponentsInChildren如何获取隐藏物体 3 导入的模型无法编辑材质球属性 4 MeshRender更换材质球方法 5 两个模型动画不同步 播完后有延迟 前
  • HX711称重模块的使用

    HX711称重模块的使用 先贴一段文字 见多了可以跳过直接看下面 满量程输出电压 激励电压 灵敏度1 0mv v 例如 供电电压是5v 乘以灵敏度1 0mv v 满量程5mv 相当于有5Kg 重力产生时候产生5mV 的电压 2 概述 711
  • C++_tuple, tie, std::get<>

    catalog std get lt gt tuple源码 tie 用处 简化比较 std get lt gt 要么返回的是 引用 要么返回的是 const 常量引用 即 std get lt 0 gt t 他返回的 一定是 t这个tupl
  • Linux新手入门教程

    下面给你讲解新手第一次接触Linux操作系统 一 学习Linux 1 Linux系统 Linux命令 ssh websever apache MySQL 缓存 PHP Python java 必备服务 2 Linux能做什么 企业服务器 嵌
  • 开发者营地

    本文聚焦于Glide的源码 基于Glide4 11 0 一 简介 Glide的GitHub Glide是一个快速高效的Android图片加载库 注重于平滑的滚动 Glide提供了易用的API 高性能 可扩展的图片解码管道 decode pi
  • WebSocket学习

    从搜索引擎搜索资料 https www runoob com html html5 websocket html WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 WebSocket 使得客户端和