protected override async Task <bool> DoSendSmsAsync(string[] receivers, string content, SmsMessageEnvolope envolope) { await Task.Run(() => { var config = this.Configurations as SgipConfigurations; var serviceNumber = config.ServiceId; var corporationId = config.CorporationId; var serviceType = config.ServiceType; if (serviceType == null) { serviceType = "0000000000"; } var sids = this.SequenceId; var m = new SgipMessageSubmit() { SequenceId3 = sids[0], SequenceId2 = sids[1], SequenceId1 = sids[2], ServiceNumber = serviceNumber, CorporationId = corporationId, ReceiverCount = (byte)receivers.Length, ReceiverNumbers = receivers, ServiceType = serviceType, Format = (byte)SgipEncodings.GBK, Content = content, }; envolope.Request = m; envolope.SequenceId = m.SequenceId; }); return(true); }
public NetworkMessage CreateNetworkMessage(BinaryReader reader) { uint byteCount = reader.NetworkReadUInt32(); SgipCommands command = (SgipCommands)reader.NetworkReadUInt32(); SgipMessage message = null; uint sid3 = reader.NetworkReadUInt32(); uint sid2 = reader.NetworkReadUInt32(); uint sid1 = reader.NetworkReadUInt32(); switch (command) { case SgipCommands.BindResponse: message = new SgipMessageBindResponse(); break; case SgipCommands.Bind: message = new SgipMessageBind(); break; case SgipCommands.Unbind: message = new SgipMessageUnbind(); break; case SgipCommands.UnbindResponse: message = new SgipMessageUnbindResponse(); break; case SgipCommands.Submit: message = new SgipMessageSubmit(); break; case SgipCommands.SubmitResponse: message = new SgipMessageSubmitResponse(); break; case SgipCommands.Deliver: //receive sms message = new SgipMessageDeliver(); break; case SgipCommands.DeliverResponse: message = new SgipMessageDeliverResponse(); break; case SgipCommands.Report: message = new SgipMessageReport(); break; case SgipCommands.ReportResponse: message = new SgipMessageReportResponse(); break; case SgipCommands.None: default: message = new SgipMessage(); break; } if (message != null) { message.Command = command; message.ByteCount = byteCount; message.SequenceId1 = sid1; message.SequenceId2 = sid2; message.SequenceId3 = sid3; message.NetworkRead(reader); } return(message); }