定时轮询-长轮询-websocket

news2024/11/24 22:27:00

一般网页 点击网页后,前端向后端 发送请求(使用http协议)

那么如何实现后端主动先前端发送数据,比如:网页游戏 聊天室 文件共享 扫码登入

http定时轮询 (轮询)

在前端代码中每隔一段时间向后端发送请求。 前端不断询问后端 这个码有人扫过了没。

(伪服务器推)

消耗带宽 服务器压力大

应用:微信扫码登入

长轮询

客户端发起请求后,服务端发现当前没有新的数据,这个时候服务端没有立即返回请求,而是将请求挂起,在等待一段时间后(一般为30s或者是60s),发现还是没有数据更新的话,就返回一个空结果给客户端。客户端在收到服务端的回复后,立即再次向服务端发送新的请求。

应用:这就是百度网盘的扫码登录 rabbitMQ 消费者取消息

避免了客户端大量的重复请求。

服务端资源大量消耗,服务端会一直hold住客户端的请求,这部分请求会占用服务器的资源。难以处理数据更新频繁的情况 如果数据更新频繁,会有大量的连接创建和重建过程,这部分消耗很大。

websocket

http1.0:单工。因为是短连接,客户端发起请求之后,服务端处理完请求并收到客户端的响应后即断开连接。

http1.1:半双工。默认开启长连接keep-alive,开启一个连接可发送多个请求。

http2.0:全双工,允许服务端主动向客户端发送数据。

WebSocket 是独立的、创建在 TCP(TCP 是基于全双工的可信传输协议的) 上的协议。

Websocket 通过HTTP/1.1 协议的101状态码进行握手。101:HTTP协议切换为WebSocket协议。

image-20221203194314833

image-20221203171417367

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

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

相关文章

宝塔面板Linux

目录 1.宝塔面板简介 2.安装与连接 3.安装软件 4.端口管理 5.宝塔面板设置 这里主要讲的是宝塔面板的主要操作,本节应与xshell与xftp共同使用 1.宝塔面板简介 宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松…

第六章- Verilog HDL 高级程序设计举例【Verilog】

第六章 Verilog HDL 高级程序设计举例【Verilog】前言推荐第六章 Verilog HDL 高级程序设计举例状态机用状态机设计1101序列检测器需要定义几个状态?代码设计——端口信号声明状态寄存器次态生成逻辑设计(C1模块)输出逻辑设计(C2模块)完整代码测试结果用状态机设计1…

vSphere-ESXi

VMware-vShpere 第一步: 在VMware虚拟机上安装一台ESXI 开启虚拟机 至此,虚拟机ESXI安装完毕 第二步:使用ESXI虚拟机IP上浏览器 登录后,上传一个映像文件至ISO文件 将VM虚拟机关机 手动添加一块硬盘 然后再使用虚拟机IP进入浏览器…

python入门——基础语法

python入门——基础语法 注释 单行注释:使用# 多行注释:使用 “”" “”" type():查看数据的类型 int():转化为整数 float():转化为浮点数 str():转化为字符串 标识符不可以使用这些 …

Spring WebFlux简单使用

官网:https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html 1.WebFlux介绍 Spring WebFlux 是 Spring Framework 5.0中引入的新的响应式web框架。与Spring MVC不同,它不需要Servlet API,是完全异步且非阻…

蓝桥杯嵌入式LCD屏幕

文章目录前言一、拷贝官方例程二、cubeMX配置三、LCD代码及函数分析使用四、sprintf函数总结前言 本篇文章将带大家学习LCD屏幕的操作,LCD的配置是非常复杂的,在比赛上去实现这些驱动程序基本上是不可能的,当然了比赛官方也是知道这一点的&a…

SpringMVC基础篇:MVC基础知识

第一章:SpringMVC引言 一:什么是SpringMVC 概念:SpringMVC是在Spring框架基础上衍生而来的一个MVC框架,主要解决了原有的MVC框架过程中控制器(Controller)的问题。 SpringMVC是Java开发当中最主流的web技…

了解软件测试

软件测试课程 1.1课程内容: 软件基础课程 ------设计测试用例方法 自动化课程(web自动化)------ 抢票功能 性能测试课程 ----项目性能测试 1.2 什么是测试 1.21 生活中测试的案例 坐地铁,做核酸,扫核酸码 比如当我…

[附源码]计算机毕业设计学生社团信息管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

零基础学习软件测试,掌握四点就够了

近年来越来越多的人转行到软件测试这一领域,对于很多外行的人来说,肯定对这一行业有很多不了解,对于这一职业的职责以及要求都会不清楚,那么我们今天就来梳理一下关于软件测试行业的信息。 一、软件测试的主要职责你知道吗&#x…

裸辞闭关60天,啃下这些软件测试笔记,有幸通过阿里测开岗P6面试

时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来让自己得到相应的提升。 近段时间,我也了解到很多小伙伴不清楚作为测试工程师应该掌握什么样的核心知识?实际…

暴力算法 --- 莫队

文章目录莫队基础莫队带修改莫队树上莫队回滚莫队莫队 什么是莫队? 答:优雅的暴力!!! 基础莫队 重复的数 题目描述:给出一个长度为NNN的序列,有若干查询,每次查询区间[li,ri][l_i,…

网页信息抓取-网页信息采集器

抓取整个网页,我们怎么抓取整个网页自己想要的文章内容,很多人一想到内容抓取。就想到要学习一门编程语言,最让大家熟知的就是python爬虫。如果完全靠自己自学,又是从零基础开始学习Python的情况下,我认为至少需要半年…

Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏

云收藏项目已经开源2年多了,作为当初刚开始学习 Spring Boot 的练手项目,使用了很多当时很新的技术,现在看来其实很多新技术是没有必要使用的,但做为学习案例来讲确实是一个绝佳的 Spring Boot 实践。 从开源到现在,写了一些教程给大家介绍如何部署云收藏,如何在IDE中运…

[附源码]计算机毕业设计ssm校园二手交易平台

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

解决JSP中Bean在页面显示不正确问题(scope关键字)

问题出现 有一天我在编写JSP的程序时,在Java后端写了跳转并且传输数据语句,但前端界面渲染出来的数据却是我在DAO中初始化的数据。 第一句语句将book对象注入request的Session中,第二句实现跳转到JSP页面,第三句将此时的request和…

Logistic回归——银行违约情况分析

文章目录一、Logistic回归原理1、Sigmoid函数作用2、用梯度下降法求解参数二、利用Logistic回归分类1、数据预处理2、利用梯度上升计算回归系数3、训练和验证总结一、Logistic回归原理 1、Sigmoid函数作用 Logistic回归的原理是用逻辑函数把线性回归的结果(-∞,∞)映射到(0,1…

【408篇】C语言笔记-第十章(线性表)

文章目录第一节:线性表的顺序表示线性表1. 定义2. 特点线性表的顺序表示1. 顺序表2. 优缺点比较3. 插入操作4. 删除操作5. 动态分配代码示例第二节:线性表的链式表示单链表优缺点对比插入操作删除操作代码示例第一节:线性表的顺序表示 线性表…

python中的序列(列表、元组、字符串)的切片操作

目录 一.序列 二. 序列常用操作——切片 注意 演示 一.序列 序列是指:内容连续、有序,可使用下标索引的一类数据容器 列表、元组、字符串,均可以可以视为序列。 二. 序列常用操作——切片 序列支持切片,即:列表、元组、字符串&#xf…

看卡塔尔世界杯,diff一下足球比赛与软件开发

diff一下足球比赛与软件开发吐槽世界杯E组!类比软件开发与足球比赛教练与架构师的作用新技术——半自动越位技术世界杯冠军吐槽世界杯E组! 最近博主看了多场世界杯比赛,看的我心力交瘁,欲哭无泪。 从日本与哥斯达黎加那场比赛开始…