{
initialize();
List<String> allowedTransports = getAllowedTransports();
// Pick the first transport for the handshake, it will renegotiate if not right
final ClientTransport initialTransport = transportRegistry.negotiate(allowedTransports.toArray(), BAYEUX_VERSION).get(0);
prepareTransport(null, initialTransport);
if (logger.isDebugEnabled())
logger.debug("Using initial transport {} from {}", initialTransport.getName(), allowedTransports);
updateBayeuxClientState(new BayeuxClientStateUpdater()
{
public BayeuxClientState create(BayeuxClientState oldState)
{