Esempio n. 1
0
 protected Delegate connect(String uri, TransportListener listener, List<Mutable> messages) {
   try {
     if (logger.isDebugEnabled()) logger.debug("Opening websocket session to {}", uri);
     _webSocketContainer.setDefaultMaxSessionIdleTimeout(getIdleTimeout());
     ClientEndpointConfig.Configurator configurator = new Configurator();
     String protocol = getProtocol();
     ClientEndpointConfig config =
         ClientEndpointConfig.Builder.create()
             .preferredSubprotocols(protocol == null ? null : Collections.singletonList(protocol))
             .configurator(configurator)
             .build();
     Delegate delegate = connect(_webSocketContainer, config, uri);
     _webSocketConnected = true;
     return delegate;
   } catch (ConnectException | SocketTimeoutException | UnresolvedAddressException x) {
     // Cannot connect, assume the server supports WebSocket until proved otherwise
     listener.onFailure(x, messages);
   } catch (Throwable x) {
     _webSocketSupported = isStickyReconnect() && _webSocketConnected;
     listener.onFailure(x, messages);
   }
   return null;
 }
Esempio n. 2
0
  protected Session connect(String uri, TransportListener listener, Mutable[] messages) {
    Session session = _wsSession;
    if (session != null) return session;

    try {
      logger.debug("Opening websocket session to {}", uri);

      session = connect(uri);
      _webSocketConnected = true;

      if (isAborted()) listener.onFailure(new Exception("Aborted"), messages);

      return _wsSession = session;
    } catch (ConnectException | SocketTimeoutException | UnresolvedAddressException x) {
      // Cannot connect, assume the server supports WebSocket until proved otherwise
      listener.onFailure(x, messages);
    } catch (Exception x) {
      _webSocketSupported = isStickyReconnect() && _webSocketConnected;
      listener.onFailure(x, messages);
    }

    return null;
  }