springboot websocket(netty-socket.io)和http,http设置cookie,websocket获取cookie。websocket使用多连接共享的cookie

本文介绍了WebSocket与HTTP连接的区别,以及如何在SpringBoot中利用netty-socket.io实现WebSocket连接时共享HTTP设置的Cookie。通过两种解决方案,一是直接操作netty-socket.io设置共享Cookie,二是通过HTTP接口设置Cookie后再由WebSocket读取。文中详细阐述了设置和获取Cookie的步骤,包括路径和域名的匹配问题,并提供了测试方法。
摘要由CSDN通过智能技术生成

名词解释:

http,一次请求,一次连接。基于请求响应模型。

websocket,多次请求,只需一次连接。服务端可以主动给客户端发送消息。

netty-socket.io,基于netty的java版socket.io

socket.io,将Websocket和轮询(Polling)机制以及其它的实时通信方式封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码。

 

目的:

我们想要一个基于浏览器进程的cookie,即,在浏览器一次打开到关闭之间,多个连接共享的一个cookie。

 

问题:

netty-socket.io用于和客户端进行实时通信,每一次连接,可以有多个请求。每个连接,有一个随机生成的sessionId和Cookie。

(SocketIOClient)client.getSessionId(),可以获取sessionId,

(SocketIOClient)client.getHandshakeData().getHttpHeaders().get(HttpHeaderNames.COOKIE),可以获取Cookie

不同连接的sessionId和Cookie都是不同的。

解决方案一:

通过对netty-socket.io直接进行操作,然后,可以通过上述获取cookie的方法获取到,一个可以被多个连接共享,浏览器不关闭,就一直存在的cookie。这种方式不需要引入http,如:

public class Me
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值