websocket 断开连接 reason :Max frame length of 65536 has been exceeded

服务主要架构 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());
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值