问题描述
- WebSocket获取的登录用户的信息
-
WebSocket怎么获取放在session里的登录用户的信息?求指教
解决方案
你上面提到的其实并不是乱码,而是urlencode编码之后的字符序列。你可以使用以下代码进行解码:
String decodeStr = URLDecoder.decode(queryStr, "utf-8");
解码之后再做分析。
解决方案二:
1.首先你要区分是HttpSession还是Websocket会话session。
2.HttpSession这里不讲,我想说的Websocket的会话session。你可以在websocket服务器端维护一个
Map map = new HashMap();
其中Session可以在每个Websocket通信的回调函数中作为参数传入,会话会帮你维护这整个session,会话期间整个session不会改变。UserInfo可以通过传入的Session为key操作
map获取。因为是全局的map,所以在访问的时候一定要注意互斥访问,记得加锁哦。
解决方案三:
这个需要客户端服务器端配合,服务器端有用户信息,客户端去连接获取。用你使用的语言+web socket去google,就会有代码的。
解决方案四:
"Map map = new HashMap();"
解决方案五:
Map<Session, UserInfo> connectmap = new HashMap<>();//session 是Websocket会话,UserInfo 是你自己的用户信息bean,当然也可以是map
解决方案六:
在服务器类上加上一下注解
@ServerEndpoint(value = "/websocket/signalmonitor/{nickname}")
start方法入参格式如下:
@OnOpen
public void start(@PathParam("nickname")String nickname, Session session) {
}
前段调用参数如下:
Chat.initialize = function() {
if (window.location.protocol == 'http:') {
Chat.connect('ws://' + window.location.host
+ '/websocket/websocket/signalmonitor/tony');
} else {
Chat.connect('wss://' + window.location.host
+ '/websocket/websocket/signalmonitor/tony');
}
};
基于路径的参数传递,服务器接受到的就是tony。
解决方案七:
Websocket里面通过注解以及方法也是可以获取到http协议的session的
时间: 2024-09-20 01:15:21