@Override
  public void init() throws TransportInitializationException {
    this.flashPolicyDomain = getConfig().getString(PARAM_FLASHPOLICY_DOMAIN);
    this.flashPolicyPorts = getConfig().getString(PARAM_FLASHPOLICY_PORTS);
    this.flashPolicyServerHost = getConfig().getString(PARAM_FLASHPOLICY_SERVER_HOST);
    this.flashPolicyServerPort = getConfig().getInt(PARAM_FLASHPOLICY_SERVER_PORT, 843);
    this.delegate = getConfig().getWebSocketTransport();

    if (LOGGER.isLoggable(Level.FINE))
      LOGGER.fine(
          getType()
              + " configuration:\n"
              + " - flashPolicyDomain="
              + flashPolicyDomain
              + "\n"
              + " - flashPolicyPorts="
              + flashPolicyPorts
              + "\n"
              + " - flashPolicyServerHost="
              + flashPolicyServerHost
              + "\n"
              + " - flashPolicyServerPort="
              + flashPolicyServerPort
              + "\n"
              + " - websocket delegate="
              + (delegate == null ? "<none>" : delegate.getClass().getName()));

    if (delegate == null)
      throw new TransportInitializationException(
          "No WebSocket transport available for this transport: " + getClass().getName());

    if (flashPolicyServerHost != null && flashPolicyDomain != null && flashPolicyPorts != null) {
      try {
        startFlashPolicyServer();
      } catch (IOException e) {
        // Ignore
      }
    }
  }