服务主要架构 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());
}