@Override public void configure(WebSocketServletFactory factory) { factory.getPolicy().setIdleTimeout(new SystemEnvironment().getWebsocketMaxIdleTime()); factory.setCreator(wac.getBean(AgentRemoteSocketCreator.class)); } }
@Override public void onWebSocketConnect(Session session) { final WebSocketPolicy currentPolicy = session.getPolicy(); currentPolicy.setInputBufferSize(service.configuredPolicy.getInputBufferSize()); currentPolicy.setMaxTextMessageSize(service.configuredPolicy.getMaxTextMessageSize()); currentPolicy.setMaxBinaryMessageSize(service.configuredPolicy.getMaxBinaryMessageSize()); super.onWebSocketConnect(session); } };
/** * Default constructor that creates {@link WebSocketServerFactory} through * its default constructor thus using a default {@link WebSocketPolicy}. */ public JettyRequestUpgradeStrategy() { this.policy = WebSocketPolicy.newServerPolicy(); }
protected void configurePolicy(final ConfigurationContext context, final WebSocketPolicy policy) { final int inputBufferSize = context.getProperty(INPUT_BUFFER_SIZE).asDataSize(DataUnit.B).intValue(); final int maxTextMessageSize = context.getProperty(MAX_TEXT_MESSAGE_SIZE).asDataSize(DataUnit.B).intValue(); final int maxBinaryMessageSize = context.getProperty(MAX_BINARY_MESSAGE_SIZE).asDataSize(DataUnit.B).intValue(); policy.setInputBufferSize(inputBufferSize); policy.setMaxTextMessageSize(maxTextMessageSize); policy.setMaxBinaryMessageSize(maxBinaryMessageSize); }
factory.getPolicy().setMaxTextMessageBufferSize(messageSize * 5); factory.getPolicy().setMaxTextMessageSize(messageSize); factory.setCreator(new WebSocketCreator() { @Override
WebSocketPolicy policy = new WebSocketPolicy(WebSocketBehavior.SERVER); policy.setIdleTimeout(Long.parseLong(max)); if (max != null) policy.setMaxTextMessageSize(Integer.parseInt(max)); if (max != null) policy.setMaxBinaryMessageSize(Integer.parseInt(max)); if (max != null) policy.setInputBufferSize(Integer.parseInt(max));
@Override public void configure(final WebSocketServletFactory factory) { factory.setCreator(this); factory.getPolicy() .setMaxTextMessageSize(config.getWebsocketMaxTextMessageSize()); factory.getPolicy() .setMaxBinaryMessageSize(config.getWebsocketMaxBinaryMessageSize()); factory.getPolicy().setMaxBinaryMessageBufferSize( config.getWebsocketMaxBinaryMessageBufferSize()); factory.getPolicy().setMaxTextMessageBufferSize( config.getWebsocketMaxTextMessageBufferSize()); factory.getPolicy() .setInputBufferSize(config.getWebsocketInputBufferSize()); factory.getPolicy() .setAsyncWriteTimeout(config.getWebsocketAsyncWriteTimeout()); factory.getPolicy().setIdleTimeout(config.getWebsocketIdleTimeout()); }
@SuppressWarnings("cast") @Override public void configure(WebSocketServletFactory factory) { if (websocketMaxIdleTime == 0) { // Jetty does not allow to set infinite timeout. factory.getPolicy().setIdleTimeout(Integer.MAX_VALUE); } else { factory.getPolicy().setIdleTimeout(websocketMaxIdleTime); } factory.getPolicy().setMaxTextMessageSize(websocketMaxMessageSize * 1024 * 1024); factory.setCreator(new WebSocketCreator() { @Override public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) { ParticipantId loggedInUser = provider.sessionManager.getLoggedInUser(req.getSession()); return new WebSocketConnection(loggedInUser, provider).getWebSocketServerChannel(); } }); } }
@Override public EventDriver create(Object websocket, WebSocketPolicy policy) throws Throwable { if (!(websocket instanceof EndpointInstance)) { throw new IllegalStateException(String.format("Websocket %s must be an %s",websocket.getClass().getName(),EndpointInstance.class.getName())); } EndpointInstance ei = (EndpointInstance)websocket; AnnotatedServerEndpointMetadata metadata = (AnnotatedServerEndpointMetadata)ei.getMetadata(); JsrEvents<ServerEndpoint, ServerEndpointConfig> events = new JsrEvents<>(metadata); // Handle @OnMessage maxMessageSizes int maxBinaryMessage = getMaxMessageSize(policy.getMaxBinaryMessageSize(),metadata.onBinary,metadata.onBinaryStream); int maxTextMessage = getMaxMessageSize(policy.getMaxTextMessageSize(),metadata.onText,metadata.onTextStream); policy.setMaxBinaryMessageSize(maxBinaryMessage); policy.setMaxTextMessageSize(maxTextMessage); JsrAnnotatedEventDriver driver = new JsrAnnotatedEventDriver(policy,ei,events); // Handle @PathParam values ServerEndpointConfig config = (ServerEndpointConfig)ei.getConfig(); if (config instanceof PathParamServerEndpointConfig) { PathParamServerEndpointConfig ppconfig = (PathParamServerEndpointConfig)config; driver.setPathParameters(ppconfig.getPathParamMap()); } return driver; }
/** * Opens the initial websocket connection with the gateway. */ void connect() { try { wsClient = new WebSocketClient(new SslContextFactory()); wsClient.getPolicy().setMaxBinaryMessageSize(Integer.MAX_VALUE); wsClient.getPolicy().setMaxTextMessageSize(Integer.MAX_VALUE); wsClient.start(); wsClient.connect(this, new URI("wss://" + endpoint), new ClientUpgradeRequest()); } catch (Exception e) { Discord4J.LOGGER.error(LogMarkers.VOICE_WEBSOCKET, "Encountered error while connecting voice websocket: ", e); } }
@Override public void init(FilterConfig filterConfig) throws ServletException { super.init(filterConfig); try { WebSocketPolicy serverPolicy = WebSocketPolicy.newServerPolicy(); String inputBufferSize = filterConfig.getInitParameter("inputBufferSize"); if (inputBufferSize != null) { serverPolicy.setInputBufferSize(Integer.parseInt(inputBufferSize)); } String idleTimeout = filterConfig.getInitParameter("idleTimeout"); if (idleTimeout != null) { serverPolicy.setIdleTimeout(Integer.parseInt(idleTimeout)); } String maxTextMessageSize = filterConfig.getInitParameter("maxTextMessageSize"); if (maxTextMessageSize != null) { serverPolicy.setMaxTextMessageSize(Integer.parseInt(maxTextMessageSize)); } webSocketFactory = new WebSocketServerFactory(filterConfig.getServletContext(), serverPolicy); webSocketFactory.setCreator((request, response) -> createWebSocketAdapter(request)); webSocketFactory.start(); } catch (ServletException e) { throw e; } catch (Exception e) { throw new ServletException(e); } }
jettyClient.setConnectTimeout(this.connectionTimeout); WebSocketPolicy policy = jettyClient.getPolicy(); policy.setMaxBinaryMessageBufferSize(maxPacketSize); policy.setMaxTextMessageBufferSize(maxPacketSize); policy.setMaxBinaryMessageSize(maxPacketSize); policy.setMaxTextMessageSize(maxPacketSize);
WebSocketPolicy policy = new WebSocketPolicy(WebSocketBehavior.SERVER); policy.setIdleTimeout(Long.parseLong(max)); if (max != null) policy.setMaxMessageSize(Long.parseLong(max)); if (max != null) policy.setInputBufferSize(Integer.parseInt(max));
@Override public void init() { super.init(); _webSocketClient.setConnectTimeout(getConnectTimeout()); _webSocketClient.getPolicy().setIdleTimeout(getIdleTimeout()); int maxMessageSize = getOption(MAX_MESSAGE_SIZE_OPTION, _webSocketClient.getPolicy().getMaxTextMessageSize()); _webSocketClient.getPolicy().setMaxTextMessageSize(maxMessageSize); _webSocketClient.setCookieStore(getCookieStore()); _webSocketSupported = true; _webSocketConnected = false; }
public AnnotatedEventDriver(WebSocketPolicy policy, Object websocket, EventMethods events) { super(policy,websocket); this.events = events; WebSocket anno = websocket.getClass().getAnnotation(WebSocket.class); // Setup the policy if (anno.maxMessageSize() > 0) { this.policy.setMaxMessageSize(anno.maxMessageSize()); } if (anno.inputBufferSize() > 0) { this.policy.setInputBufferSize(anno.inputBufferSize()); } if (anno.maxIdleTime() > 0) { this.policy.setIdleTimeout(anno.maxIdleTime()); } }
/** * Make a copy of the policy, with current values. * @return the cloned copy of the policy. */ public WebSocketPolicy clonePolicy() { WebSocketPolicy clone = new WebSocketPolicy(this.behavior); clone.idleTimeout = this.getIdleTimeout(); clone.maxTextMessageSize = this.getMaxTextMessageSize(); clone.maxTextMessageBufferSize = this.getMaxTextMessageBufferSize(); clone.maxBinaryMessageSize = this.getMaxBinaryMessageSize(); clone.maxBinaryMessageBufferSize = this.getMaxBinaryMessageBufferSize(); clone.inputBufferSize = this.getInputBufferSize() ; clone.asyncWriteTimeout = this.getAsyncWriteTimeout(); return clone; }
@Override public void setTextMessageSizeLimit(int messageSizeLimit) { checkNativeSessionInitialized(); getNativeSession().getPolicy().setMaxTextMessageSize(messageSizeLimit); }
@Override public WebSocketPolicy get() { WebSocketPolicy policy = WebSocketPolicy.newServerPolicy(); policy.setIdleTimeout(serverConfig.getSessionTimeout()*1000); return policy; }
@Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { SpringWSHandler springPlease = new SpringWSHandler(); registry.addHandler(springPlease, "/websocket").setHandshakeHandler(factoryBean()); } //Configure buffer size and timeouts @Bean public HandshakeHandler factoryBean() { WebSocketPolicy policy = new WebSocketPolicy(WebSocketBehavior.SERVER); policy.setInputBufferSize(8192); policy.setIdleTimeout(3600000); WebSocketServerFactory factory = new WebSocketServerFactory(policy); return new DefaultHandshakeHandler(new JettyRequestUpgradeStrategy(factory)); }
@Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append(this.getClass().getSimpleName()); builder.append("@").append(Integer.toHexString(hashCode())); builder.append("[behavior=").append(getBehavior()); builder.append(",maxTextMessageSize=").append(getMaxTextMessageSize()); builder.append(",maxTextMessageBufferSize=").append(getMaxTextMessageBufferSize()); builder.append(",maxBinaryMessageSize=").append(getMaxBinaryMessageSize()); builder.append(",maxBinaryMessageBufferSize=").append(getMaxTextMessageBufferSize()); builder.append(",asyncWriteTimeout=").append(getAsyncWriteTimeout()); builder.append(",idleTimeout=").append(getIdleTimeout()); builder.append(",inputBufferSize=").append(getInputBufferSize()); builder.append("]"); return builder.toString(); }