コード例 #1
0
ファイル: SgipSmsClient.cs プロジェクト: lxllh/SmsProtocols
        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);
        }
コード例 #2
0
        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);
        }