63 lines
2.2 KiB
C#
63 lines
2.2 KiB
C#
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<StringPackageInfo>
|
|
//{
|
|
// 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<StringPackageInfo>
|
|
{
|
|
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<StringPackageInfoDto>();
|
|
//var result = Utility.JSONToObject<StringRequestInfo>(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; }
|
|
}
|
|
}
|
|
}
|