服务主要架构 springcloud
springboot
springcloud gateway 网关
nginx 反向代理

问题:

客户端连接websocket,握手正常,服务端和客户端正常交互,停一会就客户端就会出现 WebSocketBase::onCloseWrapper code : 1009 reason: The decoded text message was too big for the output buffer and the endpoint does not support partial messages remote : true[^1]: 大致意思就是数据量太大服务端无法处理,并且断开了连接。1009就是数据帧太大,关闭连接。

debug:

通过debug 发现 默认最大处理是 8192字节,由于客户端发的信息大于8192个字节,所以才会出现这种问题。

解决方法:

修改前:

    @OnOpen
    public void onOpen(Session session) {
        log.info("有新的客户端连接了: {}", session.getId());
    }

修改后:

    @OnOpen
    public void onOpen(Session session) {
        session.setMaxTextMessageBufferSize(maxMessageBufferSize);
        session.setMaxBinaryMessageBufferSize(maxMessageBufferSize);
        log.info("有新的客户端连接了: {}", session.getId());
    }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐