void DeliverHandler(TcpSocketClient client, Deliver deliver) { var resp = new Deliver_Resp { SequenceNumber = deliver.SequenceNumber, Result = CommandError.Success }; client.Send(resp.GetBytes()); //将seq设置为SMG的seq deliver.SequenceNumber = Sequence.Next(); //插入手机发送的Deliver消息到数据库 var mDeliver = new MDeliver { SequenceNumber = deliver.SequenceNumberString, TargetSequenceNumber = deliver.SequenceNumber, SPNumber = deliver.SPNumber, UserNumber = deliver.UserNumber, Content = deliver.MessageContent, Created = DateTime.Now, Status = 0 }; StorageProvider <DeliverStorage> .GetStorage().Insert(mDeliver); //转发给消息中心处理 MessageCenter.GetInstance().Commit(deliver); }
void DeliverRespHandler(TcpSocketClient client, Deliver_Resp resp) { var seq = GetSequeue(resp.SequenceNumberString); if (seq != null) { StorageProvider <DeliverStorage> .GetStorage().Update(seq, 1); } }
void DeliverRespHandler(TcpSocketClient client, Deliver_Resp resp) { var seq = GetSequeue(resp.SequenceNumberString); if (seq != null) { StorageProvider <SubmitStorage> .GetStorage().Update(seq, 1); var mReport = StorageProvider <ReportStorage> .GetStorage().Get(seq); if (mReport != null) { mReport.State = (int)ReportStatus.Success; StorageProvider <ReportStorage> .GetStorage().Update(mReport); //转发给消息中心处理 MessageCenter.GetInstance().Commit(mReport); } } }
void OnRead(TcpSocketClient client, byte[] buffers) { ThreadCalls(() => { try { var cmd = new BaseCommand(buffers); switch (cmd.Command) { case Commands.Bind_Resp: var bind_resp = new Bind_Resp(buffers); if (bind_resp.Result != CommandError.Success) { PrintLog("绑定验证失败:" + CommandError.GetMessage(bind_resp.Result)); Thread.Sleep(1000); client.Disconnect(); } break; case Commands.Deliver: var deliver = new Deliver(buffers); //新消息提醒 PrintLog("收到一条 " + deliver.UserNumber + " 发来的新消息!"); //绑定消息会话 BindSession(false, deliver.UserNumber, deliver.MessageContent); //发送响应 client.Send(new Deliver_Resp { SequenceNumber = deliver.SequenceNumber, Result = CommandError.Success }.GetBytes()); break; case Commands.Deliver_Resp: var deliver_resp = new Deliver_Resp(buffers); if (deliver_resp.Result != CommandError.Success) { PrintLog("传送消息失败:" + CommandError.GetMessage(deliver_resp.Result)); } break; case Commands.Report: client.Send(new Report_Resp { SequenceNumber = cmd.SequenceNumber, Result = CommandError.Success }.GetBytes()); break; default: break; } PrintLog("接收一条命令:" + Commands.GetString(cmd.Command)); } catch (Exception e) { PrintLog("读取消息出现错误: " + e.Message); } }); }
void OnRead(TcpSocketClient client, byte[] buffers) { ThreadCalls(() => { try { var cmd = new BaseCommand(buffers); switch (cmd.Command) { case Commands.Bind_Resp: var bind_resp = new Bind_Resp(buffers); if (bind_resp.Result != CommandError.Success) { PrintLog("绑定验证失败:" + CommandError.GetMessage(bind_resp.Result)); Thread.Sleep(1000); client.Disconnect(); } break; case Commands.Deliver: var deliver = new Deliver(buffers); //添加接收记录 var sms = new SMS { SPNumber = deliver.SPNumber, UserNumber = deliver.UserNumber, Content = deliver.MessageContent, Time = DateTime.Now, Type = SMSTypes.RECEIVE }; SMSHistory.Add(sms); //绑定会话组 BindGroup(deliver.SPNumber); //绑定会话 if (lbGroup.SelectedItem != null && lbGroup.SelectedItem.ToString() == sms.SPNumber) { BindSession(sms); } else { lbGroup.SelectedItem = deliver.SPNumber; BindSession(deliver.SPNumber); } //新消息提醒 PrintLog("收到一条 " + sms.SPNumber + " 发来的新消息!"); //发送响应 client.Send(new Deliver_Resp { SequenceNumber = deliver.SequenceNumber, Result = CommandError.Success }.GetBytes()); break; case Commands.Deliver_Resp: var deliver_resp = new Deliver_Resp(buffers); if (deliver_resp.Result != CommandError.Success) { PrintLog("传送消息失败:" + CommandError.GetMessage(deliver_resp.Result)); } break; default: break; } PrintLog("接收一条命令:" + Commands.GetString(cmd.Command)); } catch (Exception e) { PrintLog("读取消息出现错误: " + e.Message); } }); }