当前位置: 首页 > news >正文

DAY01笔记

1、JSON vs 对象传输:核心区别解析

本质区别
JSON 的本质
  • JSON是字符串:{"name":"张三","age":25} 本质上就是一个文本字符串
  • Netty内置字符串处理器:Netty自带 StringEncoder/StringDecoder,专门处理字符串传输
  • 文本协议特性:JSON是人类可读的文本格式,网络传输的就是这个文本
JSON字符串 → UTF-8编码 → 二进制字节 → 网络传输↓           ↓           ↓文本数据    字符编码     纯字节流
对象传输的本质
  • 对象是内存二进制:Java对象在内存中是复杂的二进制结构(包含字段、方法、引用等)
  • 需要序列化:必须把内存中的二进制结构转换成可以在网络传输的字节流
  • 需要反序列化:接收方必须把字节流重新还原成可用的Java对象
Java对象 → 复杂序列化 → 二进制字节 → 网络传输↓           ↓           ↓内存结构    对象编码     专用字节流
实际影响
JSON 的优势
  • 开发简单,调试方便

  • 跨语言兼容性好

  • 无需预定义数据结构

  • 人类可读,便于日志记录

对象序列化的优势
  • 性能更高,数据量更小

  • 类型安全,编译期检查

  • 支持复杂对象图

  • 更好的版本控制

结论

根本在于"编码的复杂度":

  • JSON:只需要简单的字符编码(字符串→字节)

  • 对象:需要复杂的结构编码(对象内存结构→字节)

Netty内置了字符编码器,所以JSON看起来"不需要专门序列化"。但实际上对象序列化要解决的是更复杂的结构编码问题,这超出了简单字符编码的范畴

2、SSE vs WebSocket

 特性对比
特性webSocketSSE (Server-SentEvents)
通信方向双向“聊天”(你说我也说)单向“广播”(服务器说,你听着)
协议基础独立立WS/WSS协议(新通道)基于HTTP长连接(老通道升级
数据格式文本/二进制仅文本(json纯文本)
连接管理

手动写心跳检测、断线重连

浏览器自动重连(省心!)

2025支持率

2025支持率97.33%(几乎所有现代浏览器)

93.7%(iOS15+需特殊配置)

典型延迟

50-100ms(毫秒级响应)

100-200ms(比WebSocket稍慢

连接管理机制

SSE连接生命周期
建立HTTP连接 → 保持持久连接 → 服务器推送数据 → 自动重连 → 连接关闭

WebSocket会话流程
HTTP握手 → 协议升级 → 双向数据传输 → 心跳保持 → 连接终止
数据帧结构对比
SSE消息格式
data: {"type": "update", "value": 42}event: custom
data: Custom event data
id: 123
retry: 3000
WebSocket帧结构
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-------+-+-------------+-------------------------------+
|F|R|R|R| opcode|M| Payload len |    Extended payload length    |
|I|S|S|S|  (4)  |A|     (7)     |             (16/64)           |
|N|V|V|V|       |S|             |   (if payload len==126/127)   |
| |1|2|3|       |K|             |                               |
+-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
场景
SSE适用场景

1、实时数据监控

2. 新闻/通知推送

3.AI模型流失输出

webSocket使用场景

1、多人协作编辑

2、多人在线游戏

3、实时音频视频通信

总结

        SSE和WebSocket代表了两种不同的实时通信哲学:SSE建立在HTTP之上,强调简单性和兼容性;WebSocket则追求极致的性能和功能丰富性。

3、jsonRPC协议

    博客地址: https://blog.csdn.net/weixin_35750483/article/details/148910593

http://www.dtcms.com/a/540015.html

相关文章:

  • 10-js基础(ESMAScript)
  • 一次深入排查:Spring Cloud Gateway TCP 连接复用导致 K8s 负载均衡失效
  • 基于 Vue3 及TypeScript 项目后的总结
  • Android下解决滑动冲突的常见思路是什么?
  • 建筑外观设计网站如何做一个门户网站
  • SQL多表查询完全指南-从JOIN到复杂关联的数据整合利器
  • Redis主从复制与哨兵集群
  • 电科金仓“异构多活架构”:破解浙江省人民医院集团化信创难题的密钥
  • 从零搭建群晖私有影音库:NasTool自动化追剧全流程拆解与远程访问协议优化实践
  • Maven项目管理:高效构建与依赖管理!
  • 【win11】funasr 1:配置conda环境
  • 2025年--Lc219-590. N 叉树的后序遍历(递归版,带测试用例)-Java版
  • YOLO11追踪简单应用
  • Spring Web MVC 入门秘籍:从概念到实践的快速通道(上)
  • 网站是什么字体企业内网模板
  • 建一个小型购物网站要有服务器网易博客搬家wordpress
  • 申威服务器安装Nacos 2.0.3 RPM包详细步骤(Kylin V10 sw_64架构)​附安装包
  • 当同一个弹性云服务器所在子网同时设置了snat和弹性公网IP时,会优先使用哪个
  • 基于Chrome140的TK账号自动化(关键词浏览)——需求分析环境搭建(一)
  • 如何自建内网穿透(FRP)服务器
  • 服务器上用Slurm 管理训练bash 脚本任务
  • SpringBoot入门,第一个SpringBoot的创建
  • Spring AOP核心原理分析
  • HTTPS 错误排查实战,从握手到应用层的工程化流程
  • 基于ASP身份认证服务器实现远程办公VPN双因素认证的架构与实践
  • 服务器会遭受到哪些网络攻击
  • 网站设计制作软件江门自助建站模板
  • 滨州做网站推广h5制作方法
  • KTM5800——30bit 绝对角度细分器支持最多 4096 对极与一键非线性自校准集成双 16bit 2M SAR ADC,可替代TW29
  • 局域网网站制作保定哪有做网站的