code: @Override
      protected void addFunction(final long timeout, final TimeUnit tu) {
          functions.add(new FunctionWrapper("", new Function<TransportNotSupported>() {
              @Override
              public void on(TransportNotSupported transportNotSupported) {
                  request.transport().remove(0);
                  if (request.transport().size() > 0) {
                      try {
                          if (request.queryString().get("X-Atmosphere-Transport") != null) {
                              Request.TRANSPORT rt = request.transport().get(0);
                              String t = rt == Request.TRANSPORT.LONG_POLLING ? "long-polling" : rt.name();
                              request.queryString().put("X-Atmosphere-Transport", Arrays.asList(new String[]{t}));
                          }
                          open(request, timeout, tu);
                      } catch (IOException e) {
                          logger.error("", e);
                      }
                  } else {
                      throw new Error("No suitable transport supported by the server");
                  }
              }
          }));
      }
docs: {@inheritDoc}