【问题标题】:Spring Websocket connection getting closed automatically with reason Invalid reserved bitSpring Websocket连接因保留位无效而自动关闭
【发布时间】:2019-09-18 15:29:15
【问题描述】:

我的 spring websocket 代码在 Liberty 服务器中运行。该代码在本地运行良好。当我移动到我的服务器时,当我从“简单 Websocket 客户端”尝试时,我收到一个类似的错误

到“wss://url”的 WebSocket 连接失败:一个或多个保留位 开启:reserved1 = 0,reserved2 = 1,reserved3 = 1

在服务器端日志中,我可以看到afterConnectionEstablished 方法被触发,并立即afterConnectionClosed 被触发,当我打印关闭状态时,它给了我

代码 1002 原因:: 保留位无效。

我不清楚这意味着什么以及这可能来自什么原因。

public class NotificationHandler extends TextWebSocketHandler {

    Logger logger = LogManager.getLogger(NotificationHandler.class);


    @Override
    public void afterConnectionEstablished(WebSocketSession session)
            throws IOException {
        logger.info("In NotificationHandler, afterConnectionEstablished.. ");
        session.sendMessage(new TextMessage("Hello !"));
    }

    @Override
    public void handleTextMessage(WebSocketSession session, TextMessage message) throws IOException {
        logger.info("In NotificationHandler, handleTextMessage.. ");
        session.sendMessage(new TextMessage("Hello Text Message!"));
    }

    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) {
        logger.info("In NotificationHandler, afterConnectionClosed, Code:: "+ status.getCode() + ".. Reason:: " + status.getReason());
    }

}

如果您需要更多详细信息,请告诉我。

【问题讨论】:

    标签: websocket websphere-liberty spring-websocket java-websocket


    【解决方案1】:

    鉴于确切的措辞,这不是来自 Liberty Websocket 代码的原因代码,所以我猜测它来自 Spring 代码。如果您在 Liberty 上运行,我认为您希望系统配置为使用 Liberty Websocket 代码而不是其他提供程序。

    【讨论】:

    • Spring Websockets 只是库,它在幕后使用运行时服务器库进行实际连接。当我在 tomcat 上运行时,它会选择 tomcat 的 websocket 类,而在 Liberty 上运行则使用 Websphere Websocket 代码。
    猜你喜欢
    • 2012-02-21
    • 2023-03-03
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    相关资源
    最近更新 更多