染指余忆 2023-12-25 23:51 采纳率: 96.3%
浏览 10
已结题

websocket获取httpsession


import jakarta.servlet.http.HttpSession;
import jakarta.websocket.HandshakeResponse;
import jakarta.websocket.server.HandshakeRequest;
import jakarta.websocket.server.ServerEndpointConfig;

public class GetHttpSessionConfig extends ServerEndpointConfig.Configurator {
    @Override
    public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
        HttpSession httpSession = (HttpSession) request.getHttpSession();
        sec.getUserProperties().put(HttpSession.class.getName(),httpSession);
    }
}

上面是配置的configurator放在下面代码使用

import jakarta.websocket.*;
import jakarta.websocket.server.ServerEndpoint;
import tool.GetHttpSessionConfig;
import java.io.IOException;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;


@ServerEndpoint(value = "/tow",configurator = GetHttpSessionConfig.class)
public class tow {
    private static final Set<Session> clients = new CopyOnWriteArraySet<>();

    @OnOpen
    public void onOpen(Session session, EndpointConfig config) {
        clients.add(session);
    }

    @OnMessage
    public void onMessage(String message, Session session) throws IOException {
        for (Session client : clients) {
            if (client != session) { // Avoid sending message back to sender
                client.getBasicRemote().sendText(message); // Broadcast message to all clients
            }
        }
        System.out.println(message);
    }

    @OnClose
    public void onClose(Session session) {
        clients.remove(session);
    }

    @OnError
    public void onError(Throwable error) {
        System.err.println("WebSocket Error: " + error);
    }
}

img


一添加

configurator = GetHttpSessionConfig.class

就报错为什么?
下面是报错图片

img


不添加
configurator = GetHttpSessionConfig.class就没事正常连接,我的本意是获取httpsession,求解答

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月2日
    • 修改了问题 12月25日
    • 创建了问题 12月25日

    悬赏问题

    • ¥15 12864只亮屏 不显示汉字
    • ¥20 三极管1000倍放大电路
    • ¥15 vscode报错如何解决
    • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
    • ¥15 python随机森林对两个excel表格读取,shap报错
    • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
    • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
    • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
    • ¥15 VFP如何使用阿里TTS实现文字转语音?
    • ¥100 需要跳转番茄畅听app的adb命令