websocket入门详解

入门websocket的基础应该掌握一下问题:

1、什么是握手?

2、什么是websocket?

3、websocket和http的区别,应用场景

4、html前端简单代码演示

5、springboot整合websocket使用

6、使用vue+elementui打造简单聊天室

7、使用websocket进行信息实时推送,整合redis和数据库进行存储(若依Ruoyi+websocket)

1、什么是握手?

"握手"在计算机网络中是一个比喻性的术语 ,用来描述两个设备或程序在通信开始前,互相确认彼此身份、能力和准备状态的过程,就像现实中人们见面时通过"握手"表示友好和确认一样。

简单来说就是:

握手 = 建立通信前的"问好+确认"步骤

目的:确保双方都准备好、安全、可靠地通信。

什么是TCP的三次握手?

"三次握手"是指在建立 TCP连接 时,客户端与服务器之间进行的三个步骤,用于确保双方都能正常发送和接收数据。这是 TCP 协议中非常基础而重要的概念。

为什么要三次握手?

主要目的是为了 确保双方都具备发送和接收能力,并为数据传输建立可靠的连接。

三次握手的详细解析

可以将客户端理解成浏览器,服务器就是后端

客户端 服务器

| |

| --------------------- SYN, Seq = 100 -----------> | 第一次握手

| |

| <--- SYN+ACK, Seq = 200, Ack = 101 ---> | 第二次握手

| |

| ------ ACK, Seq = 101, Ack = 201 -----------> | 第三次握手

| |

模拟的三次抓包详细

第一次握手:客户端 → 服务器
  • 客户端向服务器发送一个 SYN(同步)包,表示希望建立连接。

  • 包含客户端的初始序列号(Seq = 100)。

第二次握手:服务器 → 客户端
  • 服务器收到 SYN 后,回复一个 SYN+ACK 包

  • 表示"我同意建立连接",并告诉客户端自己的初始序列号(Seq = 200)。

  • 同时对客户端的 SYN 进行确认(Ack = 101)。

第三次握手:客户端 → 服务器
  • 客户端收到 SYN+ACK 后,再发送一个 ACK 包,表示连接建立完成。

  • 确认服务器的序列号(Seq=101,Ack = 201)。

现实生活中的例子

小陈:你好,我是 小陈,能听见我吗?(SYN)

小霜:你好 小陈,我是 小霜,能听见你,我这边也能说话,你能听我吗?(SYN+ACK)

小陈:能听见,咱们开始说话吧!(ACK)

相关推荐
vx-Biye_Design7 小时前
SSM伴侣动物伴护星小程序06330-计算机课程设计、毕业设计
spring boot·后端·elasticsearch·小程序·架构·课程设计·idea
lhldsg10 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
jason成都10 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒10 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
辰烨chenye10 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
小羊没烦恼!11 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
脉动数据行情111 小时前
C# 实现德指 DAX 期货 WebSocket 实时行情监听
开发语言·websocket·c#
Cx330❀12 小时前
【Linux网络】网络层协议 IP :从网络层原理到 Linux 内核源码
linux·运维·服务器·网络·tcp/ip·ai·ai编程
小荷才露尖尖角,早有蜻蜓立上头12 小时前
过滤器的4种创建方式
java
大圣编蚕12 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法