java语言下使用spring实现websocket

本文介绍了WebSocket的基础理论,包括它的定义和功能,强调了它在解决服务器主动推送数据问题上的作用。详细阐述了WebSocket在网络协议中的位置,连接创建过程,特别是HTTP升级到WebSocket的过程。接着,解析了WebSocket的消息结构,包括Message和Frame的概念。最后,通过实战演示了如何在Spring框架中配置和实现WebSocket,包括Nginx的配置、jar包启动的配置以及业务代码的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

websocket 基础理论知识

websocket的基本定义、功能:一种浏览器与服务端之间建立双全工双向通信的协议。可以解决服务器主动向客户端推送数据的问题。

websocket在网络协议中的位置

在这里插入图片描述

传言中的websocket是基于http的,具体是怎么回事,往下看

websocket连接的创建过程

请求头

GET wss://bs.jd.com/ws/bs?model=xiaomi&sign=1111 HTTP/1.1
Host: bs.jd.com
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
Upgrade: websocket
Origin: https://bs.jd.com
Sec-WebSocket-Version: 13
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: pinId=p3JC18P942VJVmimLBi5xg; pin=13131992543_p; unick=%E8%BE%89%E8%BE%89%E5%93%A6%E5%93%A6121
Sec-WebSocket-Key: m3TZX1Lv3e+qFG2F0IHGEA==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

返回头

HTTP/1.1 101 Switching Protocols
Date: Wed, 04 Sep 2019 03:33:35 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: BBKdz9t5OvN4yd6UL3Gxwd/R79I=
Sec-WebSocket-Extensions: permessage-deflate;client_max_window_bits=15
Server: jfe
Strict-Transport-Security: max-age=2592000

在这里插入图片描述

http协议的Upgrade头
101 switching protocols
只有http1.1支持Upgrade头

websocket消息结构

服务端与客户端的交互数据单位为Message, Message分为二进制格式、文本格式。
在websocket的底层,会将Message分为一个或多个Frame(数据帧)进行传输。

frame定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值