public EngineIOClient Close() { if (ReadyState == EngineIOReadyState.OPENING || ReadyState == EngineIOReadyState.OPEN) { ReadyState = EngineIOReadyState.CLOSING; void Close() { this.OnClose("Forced close"); Transport.Close(); } void CleanUpAndClose() { Off(Event.UPGRADE, CleanUpAndClose); Off(Event.UPGRADE_ERROR, CleanUpAndClose); Close(); } void OnClose() { if (Upgrading) { Once(Event.UPGRADE, CleanUpAndClose); Once(Event.UPGRADE_ERROR, CleanUpAndClose); } else { Close(); } } if (PacketBuffer.Count > 0) { Once(Event.DRAIN, OnClose); } else { OnClose(); } } return(this); }
private void OnClose(string Message, Exception Description = null) { if (ReadyState != EngineIOReadyState.CLOSED) { StopHeartbeat(); Transport.Off(EngineIOTransport.Event.CLOSE); Transport.Close(); Transport.Off(); ReadyState = EngineIOReadyState.CLOSED; Handshake = null; Emit(Event.CLOSE, new EngineIOException(Message, Description)); PacketBuffer.Clear(); PreviousBufferSize = 0; } }
private void OnOpen() { ReadyState = EngineIOReadyState.OPEN; PriorWebsocketSuccess = Transport is EngineIOWebSocket; Emit(Event.OPEN); Flush(); if (ReadyState == EngineIOReadyState.OPEN && Option.Upgrade && Option.WebSocket && Transport is EngineIOPolling) { foreach (string Upgrade in Handshake.Upgrades) { if (EngineIOHttpManager.IsWebSocket(Upgrade)) { Probe(); break; } } } }
public EngineIOClient Connect() { if (ReadyState == EngineIOReadyState.CLOSED) { EngineIOTransport Transport; ReadyState = EngineIOReadyState.OPENING; if (Option.WebSocket && (!Option.Polling || (Option.RemeberUpgrade && PriorWebsocketSuccess))) { Transport = new EngineIOWebSocket(Option); } else { Transport = new EngineIOPolling(Option); } SetTransport(Transport); } return(this); }
public EngineIOClient(EngineIOClientOption Option) { this.Option = Option; ReadyState = EngineIOReadyState.CLOSED; }