public override void OnReceived(CT2SubscribeInterface lpSub, int subscribeIndex, void *lpData, int nLength, tagSubscribeRecvData lpRecvData) { //Debug.Print("/*********************************收到主推数据 begin***************************/"); //string strInfo = string.Format("附加数据长度: {0}", lpRecvData.iAppDataLen); //Debug.Print(strInfo); //if (lpRecvData.iAppDataLen > 0) //{ // unsafe // { // strInfo = string.Format("附加数据: {0}", Marshal.PtrToStringAuto(new IntPtr(lpRecvData.lpAppData))); // Debug.Print(strInfo); // } //} //Debug.Print("过滤字段部分:\n"); //if (lpRecvData.iFilterDataLen > 0) //{ // CT2UnPacker lpUnpack = new CT2UnPacker(lpRecvData.lpFilterData, (uint)lpRecvData.iFilterDataLen); // //ufxengine.ShowUnPacker(lpUnpack); // lpUnpack.Dispose(); //} //CT2UnPacker lpUnPack1 = new CT2UnPacker((void*)lpData, (uint)nLength); //if (lpUnPack1 != null) //{ // //ufxengine.ShowUnPacker(lpUnPack1); // lpUnPack1.Dispose(); //} //Debug.Print("/*********************************收到主推数据 end ***************************/"); }
//回报 public override void OnReceived(CT2SubscribeInterface lpSub, int subscribeIndex, void *lpData, int nLength, tagSubscribeRecvData lpRecvData) { try { Debug.Print("/*********************************收到主推数据 begin***************************/"); string strInfo = string.Format("附加数据长度: {0}", lpRecvData.iAppDataLen); Debug.Print(strInfo); if (lpRecvData.iAppDataLen > 0) { unsafe { strInfo = string.Format("附加数据: {0}", Marshal.PtrToStringAuto(new IntPtr(lpRecvData.lpAppData))); Debug.Print(strInfo); } } Debug.Print("过滤字段部分:\n"); if (lpRecvData.iFilterDataLen > 0) { CT2UnPacker lpUnpack = new CT2UnPacker(lpRecvData.lpFilterData, (uint)lpRecvData.iFilterDataLen); //ufxengine.ShowUnPacker(lpUnpack); lpUnpack.Dispose(); } CT2UnPacker lpUnPack1 = new CT2UnPacker((void *)lpData, (uint)nLength); if (lpUnPack1 != null) { //ufxengine.ShowUnPacker(lpUnPack1); lpUnPack1.Dispose(); } Debug.Print("/*********************************收到主推数据 end ***************************/"); } catch (System.Exception ex) { throw ex; } }
public override void OnReceived(CT2SubscribeInterface lpSub, int subscribeIndex, void* lpData, int nLength, tagSubscribeRecvData lpRecvData) { //收到主推数据 - 开始 if (lpRecvData.iAppDataLen > 0) { unsafe { //附加数据 string strInfo = string.Format("{0}", Marshal.PtrToStringAuto(new IntPtr(lpRecvData.lpAppData))); } } //过滤字段部分 if (lpRecvData.iFilterDataLen > 0) { CT2UnPacker lpUnpacker = new CT2UnPacker(lpRecvData.lpFilterData, (uint)lpRecvData.iFilterDataLen); //解包 //..... lpUnpacker.Dispose(); } CT2UnPacker lpUnpacker1 = new CT2UnPacker((void*)lpData, (uint)nLength); if(lpUnpacker1 != null) { //解包 //.... lpUnpacker1.Dispose(); } //收到主推数据 - 结束 }
public override void OnReceived(CT2SubscribeInterface lpSub, int subscribeIndex, void *lpData, int nLength, tagSubscribeRecvData lpRecvData) { //收到主推数据 - 开始 if (lpRecvData.iAppDataLen > 0) { unsafe { //附加数据 string strInfo = string.Format("{0}", Marshal.PtrToStringAuto(new IntPtr(lpRecvData.lpAppData))); } } UFXPushMessageType messageType = UFXPushMessageType.None; //过滤字段部分 if (lpRecvData.iFilterDataLen > 0) { CT2UnPacker lpUnpacker = new CT2UnPacker(lpRecvData.lpFilterData, (uint)lpRecvData.iFilterDataLen); //解包 //..... DataParser parser = new DataParser(); parser.Parse(lpUnpacker); Log("====推送=====过滤字段部分=====开始"); //parser.Output(); Log(parser); Log("====推送=====过滤字段部分=====结束"); lpUnpacker.Dispose(); messageType = _filterBLL.GetMessageType(parser); } if (nLength > 0) { CT2UnPacker lpUnpacker1 = new CT2UnPacker((void *)lpData, (uint)nLength); if (lpUnpacker1 != null) { //解包 //.... DataParser parser = new DataParser(); parser.Parse(lpUnpacker1); Log("====推送*****数据部分=====开始"); //parser.Output(); Log(parser); Log("====推送*****数据部分=====结束"); lpUnpacker1.Dispose(); IUFXMessageHandlerBase subscriberHandler = _handlerFactory.Create(messageType); if (subscriberHandler != null) { subscriberHandler.Handle(parser); } } } //收到主推数据 - 结束 }