using SuperSocket.ProtoBase; using System; using System.Text; using WX.CRM.Common; using WX.CRM.Model.EntitySync; namespace WX.CRM.DataSynClient.Client { //internal class BeiginEndReceiveFilter : BeginEndMarkReceiveFilter //{ // public BeiginEndReceiveFilter() // : base(new byte[] { (byte)'/',(byte)'^' }, new byte[] { (byte)'^',(byte)'/' }) // { // } // public override StringPackageInfo ResolvePackage(IBufferStream bufferStream) // { // return new StringPackageInfo("XT", "qwe", null); // } //} internal class MyReceiveFilter : TerminatorReceiveFilter { public MyReceiveFilter() : base(Encoding.UTF8.GetBytes("^^")) { } public override StringPackageInfo ResolvePackage(IBufferStream bufferStream) { //throw new NotImplementedException(); //return new StringPackageInfo("qw", "qwe", null); try { var str = bufferStream.ReadString((int)bufferStream.Length, Encoding.UTF8); //LogHelper.Info("请求数据:" + str); if (!str.EndsWith("^^")) return new StringPackageInfo("UnKnow", null, null); str = str.Remove(str.Length - 2, 2); //LogHelper.Info("去除协议字符数据:" + str); var result = str.ToObject(); //var result = Utility.JSONToObject(str); //LogHelper.Info("服务端接收到数据:" + result.Key + "," + result.Body); if (result == null) return new StringPackageInfo("UnKnow", null, null); return new StringPackageInfo(result.Key, result.Body.ToJson(), result.Parameters); } catch (Exception ex) { LogHelper.Error($"解析请求出错:{ex}"); Console.WriteLine(ex.Message); return null; } } internal class StringPackageInfoDto { public string Key { get; set; } public SYNC_PUSH Body { get; set; } public string[] Parameters { get; set; } } } }