WebSocket
用ssm写了一个小的毕设,我想在其中加入服务端向客户端发送消息的功能,于是选了WebSocket来实现,写好后在本地调试没有问题,放到云服务器上就出问题了。。。项目部署到服务器上后,在websocket的握手阶段获取不到session了
一、javaee websocket和spring websocket
因为项目框架使用了ssm,所以采用了spring框架集成好的websocket,既然这样,按道理讲,我在登录上设置好了session,那么在重载HandshakeInterceptor类的beforeHandshake方法时就可以直接获取session值,方便接下来要实现的对点发送信息功能。重写的beforeHandshake方法如下图
在是用javaee原生的websocket时好像不能直接取用session(没做具体了解)
二、IP访问和域名访问同一网站在浏览器中存储的sessionid不是同一个
这个标题就是我出错的地方
我在js代码中建立websocket长连接时发送的链接中使用了IP地址,代码如下
// 首先判断是否 支持 WebSocket
if('WebSocket' in window) {
websocket = new WebSocket("ws://xxx.xxx.xxx.xxx:8080/dydadmin/websocket