gpt4 book ai didi

java - 从 websocket 获取 HttpSession 的 Jetty/javalin 总是返回 null

转载 作者:行者123 更新时间:2023-11-29 04:16:45 24 4
gpt4 key购买 nike

大家好,我正在使用 javalin(使用 jetty)并尝试获取 HttpSession,但它总是返回 null!有没有更好的方法可以在没有上下文的情况下在 websockets 中获取 HttpSession?

    app.ws("/console",webSocketHandler -> {
webSocketHandler.onConnect(wsSession -> {
System.out.println(wsSession.getLocalAddress().getHostString() + " is Now Connected!");wsSession.send("ge");
});
webSocketHandler.onMessage((wsSession, s) -> {
System.out.println((wsSession().getUpgradeRequest().getSession() == null)+"");
});

最佳答案

HttpSession 是一个 HTTP 特性。

一旦升级到 WebSocket,您就不再是 HTTP,因此也就没有 HttpSession

如果你想从HttpSession获取信息,在升级过程中获取HttpSession,然后从中获取你需要的信息。因为一旦您升级到 WebSocket,该 HttpSession 就不再对该请求有效。

在 Java 中,您可以使用 Jetty WebSocketCreator 或 JSR356 Configurator 来做到这一点。

关于java - 从 websocket 获取 HttpSession 的 Jetty/javalin 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51897634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com