private void OnClose(string reason, Exception desc = null) { if (this.ReadyState != Socket.ReadyStateEnum.OPENING && this.ReadyState != Socket.ReadyStateEnum.OPEN) { return; } LogManager logger = LogManager.GetLogger(Global.CallerName("", 0, "")); logger.Info(string.Format("OnClose socket close with reason: {0}", (object)reason)); if (this.PingIntervalTimer != null) { this.PingIntervalTimer.Stop(); } if (this.PingTimeoutTimer != null) { this.PingTimeoutTimer.Stop(); } EasyTimer.SetTimeout((ActionTrigger)(() => { this.WriteBuffer = ImmutableList <Packet> .Empty; this.CallbackBuffer = ImmutableList <ActionTrigger> .Empty; this.PrevBufferLen = 0; }), 1); if (this.mTransport != null) { this.mTransport.Off(Socket.EVENT_CLOSE); this.mTransport.Close(); this.mTransport.Off(); } this.ReadyState = Socket.ReadyStateEnum.CLOSED; logger.Info("Socket.ReadyState = CLOSE"); this.Id = (string)null; this.Emit(Socket.EVENT_CLOSE, (object)reason, (object)desc); }
public Socket Open() { string name = !this.RememberUpgrade || !Socket.PriorWebsocketSuccess || !this.Transports.Contains(WebSocket.NAME) ? this.Transports[0] : WebSocket.NAME; this.ReadyState = Socket.ReadyStateEnum.OPENING; Transport transport = this.CreateTransport(name); this.SetTransport(transport); ThreadPool.QueueUserWorkItem((WaitCallback)(arg => { LogManager logger = LogManager.GetLogger(Global.CallerName("", 0, "")); logger.Info("Task.Run Open start"); transport.Open(); logger.Info("Task.Run Open finish"); })); return(this); }
private void OnOpen() { LogManager logger = LogManager.GetLogger(Global.CallerName("", 0, "")); this.ReadyState = Socket.ReadyStateEnum.OPEN; Socket.PriorWebsocketSuccess = WebSocket.NAME == this.mTransport.Name; this.Flush(); this.Emit(Socket.EVENT_OPEN); if (this.ReadyState != Socket.ReadyStateEnum.OPEN || !this.Upgrade || !(this.mTransport is Polling)) { return; } logger.Info("OnOpen starting upgrade probes"); this._errorCount = 0; foreach (string upgrade in this.Upgrades) { this.Probe(upgrade); } }