/// <summary> /// This function will begin to open the Socket.IO connection by sending out the handshake request. /// If the Options' AutoConnect is true, it will be called automatically. /// </summary> public void Open() { if (State != States.Initial && State != States.Closed && State != States.Reconnecting) { return; } HTTPManager.Logger.Information("SocketManager", "Opening"); ReconnectAt = DateTime.MinValue; switch (Options.ConnectWith) { case TransportTypes.Polling: Transport = new PollingTransport(this); break; #if !BESTHTTP_DISABLE_WEBSOCKET case TransportTypes.WebSocket: Transport = new WebSocketTransport(this); break; #endif } Transport.Open(); (this as IManager).EmitEvent("connecting"); State = States.Opening; ConnectionStarted = DateTime.UtcNow; HTTPManager.Heartbeats.Subscribe(this); // The root namespace will be opened by default GetSocket("/"); }