WebSocket的坑

在WebSocket应用中,遇到JavaEE与Spring WebSocket在获取session上的差异,以及IP与域名访问导致的不同sessionid。通过前端判断访问方式来解决session跨域问题。
摘要由CSDN通过智能技术生成

WebSocket

用ssm写了一个小的毕设,我想在其中加入服务端向客户端发送消息的功能,于是选了WebSocket来实现,写好后在本地调试没有问题,放到云服务器上就出问题了。。。项目部署到服务器上后,在websocket的握手阶段获取不到session了

一、javaee websocket和spring websocket

因为项目框架使用了ssm,所以采用了spring框架集成好的websocket,既然这样,按道理讲,我在登录上设置好了session,那么在重载HandshakeInterceptor类的beforeHandshake方法时就可以直接获取session值,方便接下来要实现的对点发送信息功能。重写的beforeHandshake方法如下图
1
在是用javaee原生的websocket时好像不能直接取用session(没做具体了解)

二、IP访问和域名访问同一网站在浏览器中存储的sessionid不是同一个

这个标题就是我出错的地方
我在js代码中建立websocket长连接时发送的链接中使用了IP地址,代码如下

// 首先判断是否 支持 WebSocket
if('WebSocket' in window) {
    websocket = new WebSocket("ws://xxx.xxx.xxx.xxx:8080/dydadmin/websocket
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值