我遇到了这个问题,并且在任何地方都很难找到答案,所以我想我会在这里为未来的程序员输入它。
在 Jetty 9 中,如果您尝试在会话对象上设置最大消息大小来处理大数据包,它将不起作用。如果您的客户端尝试发送大数据,您仍然会断开连接。我在谈论这个对象上的 setMaximimumMessageSize:http: //download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/websocket/api/Session.html
相反,您需要在从 WebSocketServletFactory 获取的策略对象上设置最大消息大小。
public final class MyWebSocketServlet extends WebSocketServlet
{
private static final long MAX_MESSAGE_SIZE = 1000000;
@Override
public void configure(WebSocketServletFactory factory)
{
factory.getPolicy().setMaxMessageSize(MAX_MESSAGE_SIZE);
factory.setCreator(new MyWebSocketCreator());
}
}
这将按预期工作,您的服务器将能够处理高达您设置的最大大小的大型消息。