【发布时间】:2013-07-05 21:38:11
【问题描述】:
我遇到了这个问题,并且在任何地方都很难找到答案,所以我想我会在这里为未来的程序员输入它。
在 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());
}
}
这将按预期工作,并且您的服务器将能够处理最多为您设置的最大大小的大型消息。
【问题讨论】:
标签: websocket size jetty message