private void initWebSocketSession(String url, int wsConnectionTimeout) throws Exception { CountDownLatch wsLatch = new CountDownLatch(1); ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build(); ClientManager client = ClientManager.createClient(); client.connectToServer(new Endpoint() { @Override public void onOpen(Session session, EndpointConfig endpointConfig) { wsSession = session; wsLatch.countDown(); } }, cec, new URI(url)); if (!wsLatch.await(wsConnectionTimeout, TimeUnit.SECONDS)) { throw new TimeoutException("Web socket connection timeout"); } }
public DaemonMessagesClientEndpoint( String host, String port, boolean ssl, MessageEventService messageEventService ) throws KettleException { try { setAuthProperties(); String url = String.format( URL_TEMPLATE, ( ssl ? PRFX_WS_SSL : PRFX_WS ), host, port ); URI uri = new URI( url ); this.messageEventService = messageEventService; WebSocketContainer container = ContainerProvider.getWebSocketContainer(); container.connectToServer( this, ClientEndpointConfig.Builder.create() .encoders( Collections.singletonList( MessageEncoder.class ) ) .decoders( Collections.singletonList( MessageDecoder.class ) ) .configurator( new SessionConfigurator( uri, keytab, principal ) ) .build(), uri ); } catch ( Exception e ) { throw new KettleException( e ); } }
@Override protected ListenableFuture<WebSocketSession> doHandshakeInternal(WebSocketHandler webSocketHandler, HttpHeaders headers, final URI uri, List<String> protocols, List<WebSocketExtension> extensions, Map<String, Object> attributes) { int port = getPort(uri); InetSocketAddress localAddress = new InetSocketAddress(getLocalHost(), port); InetSocketAddress remoteAddress = new InetSocketAddress(uri.getHost(), port); final StandardWebSocketSession session = new StandardWebSocketSession(headers, attributes, localAddress, remoteAddress); final ClientEndpointConfig endpointConfig = ClientEndpointConfig.Builder.create() .configurator(new StandardWebSocketClientConfigurator(headers)) .preferredSubprotocols(protocols) .extensions(adaptExtensions(extensions)).build(); endpointConfig.getUserProperties().putAll(getUserProperties()); final Endpoint endpoint = new StandardWebSocketHandlerAdapter(webSocketHandler, session); Callable<WebSocketSession> connectTask = () -> { this.webSocketContainer.connectToServer(endpoint, endpointConfig, uri); return session; }; if (this.taskExecutor != null) { return this.taskExecutor.submitListenable(connectTask); } else { ListenableFutureTask<WebSocketSession> task = new ListenableFutureTask<>(connectTask); task.run(); return task; } }
final Integer timeout = resolve(attributes,TIMEOUT,Integer.class); final AtomicReference<WebSocket> socket = new AtomicReference<>(); ClientEndpointConfig.Builder configBuilder = ClientEndpointConfig.Builder.create(); Session session; try { configBuilder.configurator( new ClientEndpointConfig.Configurator(){ public void beforeRequest(Map<String,List<String>> reqHeaders){ }).build(), uri);
if (o instanceof Endpoint) { endpoint = (Endpoint) o; config = configuration == null ? ClientEndpointConfig.Builder.create().build() : configuration; } else if (o instanceof Class) { if (Endpoint.class.isAssignableFrom((Class<?>) o)) { ? ClientEndpointConfig.Builder.create().build() : configuration; } else if ((((Class<?>) o).getAnnotation(ClientEndpoint.class) != null)) {
if (o instanceof Endpoint) { endpoint = (Endpoint) o; config = configuration == null ? ClientEndpointConfig.Builder.create().build() : configuration; } else if (o instanceof Class) { if (Endpoint.class.isAssignableFrom((Class<?>) o)) { ? ClientEndpointConfig.Builder.create().build() : configuration; } else if ((((Class<?>) o).getAnnotation(ClientEndpoint.class) != null)) {
ReflectionHelper.getInstance(wscAnnotation.configurator(), collector); return ClientEndpointConfig.Builder.create().encoders(encoderClasses).decoders(decoderClasses) .preferredSubprotocols(Arrays.asList(subProtocols)) .configurator(configurator).build();
ReflectionHelper.getInstance(wscAnnotation.configurator(), collector); return ClientEndpointConfig.Builder.create().encoders(encoderClasses).decoders(decoderClasses) .preferredSubprotocols(Arrays.asList(subProtocols)) .configurator(configurator).build();
Builder builder = ClientEndpointConfig.Builder.create().configurator( this.configurator); builder.decoders(this.decoders); this.wsConfig = builder.build();
this.session = client.connectToServer( this, ClientEndpointConfig.Builder.create() .encoders(Arrays.<Class<? extends Encoder>>asList(PlatformManagementKnowledgeBean.PlatformManagementKnowledgeBeanCode.class)) .decoders(Arrays.<Class<? extends Decoder>>asList(PlatformManagementKnowledgeBean.PlatformManagementKnowledgeBeanCode.class)) .build(),
Session connect(URI uri) { try { ClientEndpointConfig config = ClientEndpointConfig.Builder.create().configurator(configurator).build();