websocket Session 如何共享
答案:2 悬赏:80 手机版
解决时间 2021-02-15 08:40
- 提问者网友:趣果有间
- 2021-02-14 08:37
我有两台服务器,开发语言是java。用nginx做了负载均衡采用ip_hash方式,现在出现了websocketsession无法获取的问题,不知道如何做session共享。求大神给个例子。
最佳答案
- 五星知识达人网友:西岸风
- 2021-02-14 09:40
ip_hash不存在session丢失的问题吧,因为你每次给用户的,都是同一个服务器
全部回答
- 1楼网友:青灯有味
- 2021-02-14 10:01
1.客户端发送websocket请求,此时发送的还是http包。
2.如果服务器支持websocket,那么就将http转变为websocket。
3.此时连接建立,服务器和客户端可以双向实时进行通信。
首先要继承serverendpointconfig,并实现 modifyhandshake方法:
import javax.servlet.http.httpsession;
import javax.websocket.handshakeresponse;
import javax.websocket.server.handshakerequest;
import javax.websocket.server.serverendpointconfig;
public class gethttpsessionconfigurator extends serverendpointconfig.configurator
{
@override
public void modifyhandshake(serverendpointconfig config,
handshakerequest request,
handshakeresponse response)
{
httpsession httpsession = (httpsession)request.gethttpsession();
config.getuserproperties().put(httpsession.class.getname(),httpsession);
}
}
然后在实现serverendpoint时,增加configurator的参数,再这样获取即可:
httpsession httpsession = (httpsession) config.getuserproperties().get(httpsession.class.getname());
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯