/// <summary> /// 连接成功后调用 /// </summary> /// <param name="isSuccess"></param> public virtual void OnConnect(bool isSuccess) { isConnect = isSuccess; SyncCall.Add(() => { if (OnConnectCompleted != null) { OnConnectCompleted(this, new ConnectCommpletedArgs { Success = isSuccess }); } }); }
/// <summary> /// 接收到消息 /// </summary> /// <param name="message"></param> public virtual void OnReceived(Message message) { if (message.Class == MessageClass.Ping) { #region Ping var tickNow = DateTime.Now.Ticks; long tickSend = 0; using (var mem = new MemoryStream(message.Content)) { using (var br = new BinaryReader(mem)) { tickSend = br.ReadInt64(); } } Delay = (tickNow - tickSend); SyncCall.Add(() => { if (OnPingCompleted != null) { OnPingCompleted(this, new PingCompletedArgs { DelayTicks = Delay }); } }); #endregion } else if (message.Class == MessageClass.Package) { var bufferPackage = MessageBufferPackage.ParseFromMessage(message); foreach (var m in bufferPackage.Messages) { OnReceived(m); } } else if (message.Class == MessageClass.Close) { this.Disconnect(); } else { ReceivedBufferMessage(message); } if (UsedThread) { SendEvent.Set(); } }