private static void install(ServerContainer serverContainer, WebSocketTransport webSocketTransport, String contextPath, String endpointPath, String requestPath) throws DeploymentException { String path = endpointPath + requestPath; // init websocket endpoint List<String> subprotocols = Arrays.asList(new String[] { "xdi" }); List<Extension> extensions = null; List<Class<? extends Encoder>> encoders = null; List<Class<? extends Decoder>> decoders = null; ServerEndpointConfig.Configurator serverEndpointConfigConfigurator = new ServerEndpointConfig.Configurator() { }; ServerEndpointConfig.Builder serverEndpointConfigBuilder = ServerEndpointConfig.Builder.create( WebSocketServerEndpoint.class, path); serverEndpointConfigBuilder.subprotocols(subprotocols); serverEndpointConfigBuilder.extensions(extensions); serverEndpointConfigBuilder.encoders(encoders); serverEndpointConfigBuilder.decoders(decoders); serverEndpointConfigBuilder.configurator(serverEndpointConfigConfigurator); ServerEndpointConfig serverEndpointConfig = serverEndpointConfigBuilder.build(); serverEndpointConfig.getUserProperties().put("webSocketTransport", webSocketTransport); serverEndpointConfig.getUserProperties().put("contextPath", contextPath); serverEndpointConfig.getUserProperties().put("endpointPath", endpointPath); // install websocket endpoint serverContainer.addEndpoint(serverEndpointConfig); // done log.info("Installed WebSocket endpoint at " + path + " with subprotocols " + subprotocols); }
/** * Builds the configuration object using the current attributes * that have been set on this builder object. * * @return a new TyrusServerEndpointConfig object. */ public TyrusServerEndpointConfig build() { final ServerEndpointConfig serverEndpointConfig = ServerEndpointConfig.Builder.create(endpointClass, path).subprotocols(subprotocols) .extensions(extensions).encoders(encoders).decoders(decoders) .configurator(serverEndpointConfigurator).build(); return new DefaultTyrusServerEndpointConfig( serverEndpointConfig, this.maxSessions ); }
/** * Builds the configuration object using the current attributes * that have been set on this builder object. * * @return a new TyrusServerEndpointConfig object. */ public TyrusServerEndpointConfig build() { final ServerEndpointConfig serverEndpointConfig = ServerEndpointConfig.Builder.create(endpointClass, path).subprotocols(subprotocols) .extensions(extensions).encoders(encoders).decoders(decoders) .configurator(serverEndpointConfigurator).build(); return new DefaultTyrusServerEndpointConfig( serverEndpointConfig, this.maxSessions ); }