@Override public void setBinaryMessageSizeLimit(int messageSizeLimit) { checkNativeSessionInitialized(); getNativeSession().getPolicy().setMaxBinaryMessageSize(messageSizeLimit); }
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); }
@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); } };
@Override public void setMaxBinaryMessageSize(int size) { delegated.setMaxBinaryMessageSize(size); }
@Override public void setBinaryMessageSizeLimit(int messageSizeLimit) { checkNativeSessionInitialized(); getNativeSession().getPolicy().setMaxBinaryMessageSize(messageSizeLimit); }
@Override public void setBinaryMessageSizeLimit(int messageSizeLimit) { checkNativeSessionInitialized(); getNativeSession().getPolicy().setMaxBinaryMessageSize(messageSizeLimit); }
/** * 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 setDefaultMaxBinaryMessageBufferSize(int max) { super.setDefaultMaxBinaryMessageBufferSize(max); // overall message limit (used in non-streaming) this.configuration.getPolicy().setMaxBinaryMessageSize(max); // incoming streaming buffer size this.configuration.getPolicy().setMaxBinaryMessageBufferSize(max); }
/** * Opens the initial websocket connection with the gateway. * If a connection was already open (in the case of reconnecting), it will be asynchronously closed. */ void connect() { WebSocketClient previous = wsClient; // for cleanup 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(gateway), new ClientUpgradeRequest()); } catch (Exception e) { Discord4J.LOGGER.error(LogMarkers.WEBSOCKET, "Encountered error while connecting websocket: ", e); } finally { if (previous != null) { CompletableFuture.runAsync(() -> { try { previous.stop(); } catch (Exception e) { Discord4J.LOGGER.error(LogMarkers.WEBSOCKET, "Error while stopping previous websocket: ", e); } }); } } }
@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; }
@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); //////// instrumentation is here JsrAnnotatedEventDriver driver = new InstJsrAnnotatedEventDriver(policy, ei, events, metrics); //////// // Handle @PathParam values ServerEndpointConfig config = (ServerEndpointConfig) ei.getConfig(); if (config instanceof PathParamServerEndpointConfig) { PathParamServerEndpointConfig ppconfig = (PathParamServerEndpointConfig) config; driver.setPathParameters(ppconfig.getPathParamMap()); } return driver; }
@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); //////// instrumentation is here JsrAnnotatedEventDriver driver = new InstJsrAnnotatedEventDriver(policy, ei, events, metrics); //////// // Handle @PathParam values ServerEndpointConfig config = (ServerEndpointConfig) ei.getConfig(); if (config instanceof PathParamServerEndpointConfig) { PathParamServerEndpointConfig ppconfig = (PathParamServerEndpointConfig) config; driver.setPathParameters(ppconfig.getPathParamMap()); } return driver; }
@Override public void onWebSocketConnect(Session session) { this.session = session; if (wsTransport.getMaxFrameSize() > 0) { this.session.getPolicy().setMaxBinaryMessageSize(wsTransport.getMaxFrameSize()); this.session.getPolicy().setMaxTextMessageSize(wsTransport.getMaxFrameSize()); } }
@Override public void onWebSocketConnect(Session session) { this.session = session; if (wsTransport.getMaxFrameSize() > 0) { this.session.getPolicy().setMaxBinaryMessageSize(wsTransport.getMaxFrameSize()); this.session.getPolicy().setMaxTextMessageSize(wsTransport.getMaxFrameSize()); } }
if (max != null) policy.setMaxBinaryMessageSize(Integer.parseInt(max));
@Override public void onWebSocketConnect(Session session) { this.session = session; if (wsTransport.getMaxFrameSize() > 0) { this.session.getPolicy().setMaxBinaryMessageSize(wsTransport.getMaxFrameSize()); this.session.getPolicy().setMaxTextMessageSize(wsTransport.getMaxFrameSize()); } }
policy.setMaxBinaryMessageBufferSize(maxPacketSize); policy.setMaxTextMessageBufferSize(maxPacketSize); policy.setMaxBinaryMessageSize(maxPacketSize); policy.setMaxTextMessageSize(maxPacketSize);
public JettyAnnotatedEventDriver(WebSocketPolicy policy, Object websocket, JettyAnnotatedMetadata events) { super(policy,websocket); this.events = events; WebSocket anno = websocket.getClass().getAnnotation(WebSocket.class); // Setup the policy if (anno.maxTextMessageSize() > 0) { this.policy.setMaxTextMessageSize(anno.maxTextMessageSize()); } if (anno.maxBinaryMessageSize() > 0) { this.policy.setMaxBinaryMessageSize(anno.maxBinaryMessageSize()); } if (anno.inputBufferSize() > 0) { this.policy.setInputBufferSize(anno.inputBufferSize()); } if (anno.maxIdleTime() > 0) { this.policy.setIdleTimeout(anno.maxIdleTime()); } this.batchMode = anno.batchMode(); }
@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()); }
@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()); }