@Override public int getBinaryMessageSizeLimit() { checkNativeSessionInitialized(); return getNativeSession().getPolicy().getMaxBinaryMessageSize(); }
@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 int getMaxBinaryMessageSize() { return delegated.getMaxBinaryMessageSize(); }
/** * Get the maximum size for a binary message. * * @return the maximum size of a binary message. */ public long getMaxBinaryMessageSize() { return getPolicy().getMaxBinaryMessageSize(); }
@Override public int getDefaultMaxBinaryMessageBufferSize() { return this.configuration.getPolicy().getMaxBinaryMessageSize(); }
@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(); }
@Override public int getBinaryMessageSizeLimit() { checkNativeSessionInitialized(); return getNativeSession().getPolicy().getMaxBinaryMessageSize(); }
protected ByteAccumulator newByteAccumulator() { int maxSize = Math.max(getPolicy().getMaxTextMessageSize(),getPolicy().getMaxBinaryMessageSize()); return new ByteAccumulator(maxSize); }
@Override public int getBinaryMessageSizeLimit() { checkNativeSessionInitialized(); return getNativeSession().getPolicy().getMaxBinaryMessageSize(); }
@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; }
/** * 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; }