void Traverse(string directory, DirectoryTraverserResult result) { try { var dirInfo = new DirectoryInfo(directory); result.Directories++; OnDirectory?.Invoke(dirInfo); if (OnFile != null) { foreach (var file in dirInfo.EnumerateFiles()) { OnFile.Invoke(file); } } foreach (var dir in dirInfo.EnumerateDirectories()) { Traverse(Path.Combine(directory, dir.Name), result); } } catch { result.Exceptions++; } }
private void _client_OnMessage(object sender, byte[] data) { ((UserToken)_client.ReceiveSocket.UserToken).UnPackage(data, (p) => { try { var msg = SerializeHelper.ProtolBufDeserialize <Message>(p.Content); ActiveTime = DateTime.Now; switch (msg.Protocal) { case (byte)MessageProtocalEnum.RLogin: this.OnLogined?.Invoke(this, Encoding.UTF8.GetString(msg.Data)); break; case (byte)MessageProtocalEnum.RSubscribe: this.OnSubed(Encoding.UTF8.GetString(msg.Data)); break; case (byte)MessageProtocalEnum.File: OnFile?.Invoke(this, msg); break; case (byte)MessageProtocalEnum.Heart: ActiveTime = DateTime.Now; break; default: OnMessage?.Invoke(this, msg); break; } } catch { } }); }
public void WsInite() { ws.OnMessage += (sender, e) => { if (e.Data != null) { try { Message msg = SerializeHelper.Deserialize <Message>(e.Data); if (msg != null) { switch (msg.Protocal) { case (byte)MessageProtocalEnum.Heart: ActiveTime = DateTime.Now; //OnNotice?.Invoke(new Message //{ // Data = Encoding.UTF8.GetBytes("心跳:"+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")) //}); break; case (byte)MessageProtocalEnum.RLogin: this.OnLogined?.Invoke(this, Encoding.UTF8.GetString(msg.Data)); isLogin = true; OnNotice?.Invoke(msg); break; case (byte)MessageProtocalEnum.RemoteConnect: //var aa = Encoding.UTF8.GetString(msg.Data); OnNotice?.Invoke(msg); break; default: OnMessage?.Invoke(this, msg); break; } } } catch { } } else { Message msgFile = SerializeHelper.ProtolBufDeserialize <Message>(e.RawData); if (msgFile.Protocal == (byte)MessageProtocalEnum.File) { OnFile?.Invoke(this, msgFile.Data, "1"); } if (msgFile.Protocal == (byte)MessageProtocalEnum.FileSlice) { OnFile?.Invoke(this, msgFile.Data, "2"); } OnNotice?.Invoke(new Message { Data = Encoding.UTF8.GetBytes("接收到图片") }); } }; ws.OnError += (sender, e) => { }; ws.OnClose += (sender, e) => { }; // ws.OnOpen += (sender, e) => ws.Send("name:Hi, there!"); }