Example #1
0
            public async Task Subscribe_ProcessAsync(int seqid, TProtocol iprot, TProtocol oprot, CancellationToken cancellationToken)
            {
                var args = new SubscribeArgs();
                await args.ReadAsync(iprot, cancellationToken);

                await iprot.ReadMessageEndAsync(cancellationToken);

                var result = new SubscribeResult();

                try
                {
                    result.Success = await _iAsync.SubscribeAsync(args.Message, cancellationToken);

                    await oprot.WriteMessageBeginAsync(new TMessage("Subscribe", TMessageType.Reply, seqid), cancellationToken);

                    await result.WriteAsync(oprot, cancellationToken);
                }
                catch (TTransportException)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    Console.Error.WriteLine("Error occurred in processor:");
                    Console.Error.WriteLine(ex.ToString());
                    var x = new TApplicationException(TApplicationException.ExceptionType.InternalError, " Internal error.");
                    await oprot.WriteMessageBeginAsync(new TMessage("Subscribe", TMessageType.Exception, seqid), cancellationToken);

                    await x.WriteAsync(oprot, cancellationToken);
                }
                await oprot.WriteMessageEndAsync(cancellationToken);

                await oprot.Transport.FlushAsync(cancellationToken);
            }
Example #2
0
 /**
   * Creates the print format of the subscribe result value.
   * @param resultArray
   * @return
   */
 public static String createMessage(SubscribeResult result)
 {
     String resultString = null;
     if (result != null)
     {
         if (result.Success)
         {
             resultString = resultString + "<b>Subscribe Result: Success</b>";
             resultString = resultString + "<br>&nbsp;&nbsp;Account Id: " + result.AccountId;
             resultString = resultString + "<br>&nbsp;&nbsp;Account Number: " + result.AccountNumber;
             resultString = resultString + "<br>&nbsp;&nbsp;Subscription Id: " + result.SubscriptionId;
             resultString = resultString + "<br>&nbsp;&nbsp;Subscription Number: " + result.SubscriptionNumber;
             resultString = resultString + "<br>&nbsp;&nbsp;Invoice Number: " + result.InvoiceNumber;
             resultString = resultString + "<br>&nbsp;&nbsp;Payment Transaction: " + result.PaymentTransactionNumber;
         }
         else
         {
             resultString = resultString + "<b>Subscribe Result: Failed</b>";
             Error[] errors = result.Errors;
             if (errors != null)
             {
                 foreach (Error error in errors)
                 {
                     resultString = resultString + "<br>&nbsp;&nbsp;Error Code: " + error.Code;
                     resultString = resultString + "<br>&nbsp;&nbsp;Error Message: " + error.Message;
                 }
             }
         }
     }
     return resultString;
 }
Example #3
0
 public EzSubscribeResult(
     SubscribeResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzSubscribeUser(result.item);
     }
 }
Example #4
0
        public void Subscibe(CallMessage call, SubscribeResult handler)
        {
            lock (this)
                call.Id = lastId++;

            sendToServer(call.ToString());

            var tcs = new TaskCompletionSource <ResultMessage>();

            lock (this)
                subscribes[call.Id] = handler;
        }
        public SubscribeResult SubscribeTopic(SubscribeRequest subscribeRequest)
        {
            var subscribeResult = new SubscribeResult();;

            using (var connection = Factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.BasicQos(0, 1, false);
                    var result = channel.BasicGet(queue: "topic.bombay.queue", autoAck: false);
                    if (result != null)
                    {
                        subscribeResult.Body = Encoding.UTF8.GetString(result.Body);
                    }
                }
            return(subscribeResult);
        }
        public SubscribeResult SubscribeDirect(SubscribeRequest subscribeRequest)
        {
            var subscribeResult = new SubscribeResult();;

            using (var connection = Factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: subscribeRequest.Queue, durable: true, exclusive: false, autoDelete: false, arguments: null);
                    var result = channel.BasicGet(queue: subscribeRequest.Queue, autoAck: false);
                    if (result != null)
                    {
                        subscribeResult.Body = Encoding.UTF8.GetString(result.Body);
                    }
                }
            return(subscribeResult);
        }
Example #7
0
        public virtual bool onReceive(MessageEnvelope message, ITransport transport)
        {
            if (message.Body.isSubscribeRequestSelected())
            {
                MessageEnvelope     resultMsg           = new MessageEnvelope();
                MessageBody         body                = new MessageBody();
                SubscribeResult     subscribeResult     = new SubscribeResult();
                SubscribeResultCode subscribeResultCode = new SubscribeResultCode();
                body.selectSubscribeResult(subscribeResult);
                resultMsg.Body            = (body);
                resultMsg.Id              = message.Id;
                subscribeResultCode.Value = SubscribeResultCode.EnumType.unknownQueue;
                subscribeResult.Code      = subscribeResultCode;
                try
                {
                    transport.sendAsync(resultMsg);
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            else if (message.Body.isUnsubscribeRequestSelected())
            {
                MessageEnvelope       resultMsg             = new MessageEnvelope();
                MessageBody           body                  = new MessageBody();
                UnsubscribeResult     unsubscribeResult     = new UnsubscribeResult();
                UnsubscribeResultCode unsubscribeResultCode = new UnsubscribeResultCode();
                body.selectUnsubscribeResult(unsubscribeResult);
                resultMsg.Body = (body);
                resultMsg.Id   = message.Id;
                unsubscribeResultCode.Value = (UnsubscribeResultCode.EnumType.unknownQueue);
                unsubscribeResult.Code      = (unsubscribeResultCode);
                try
                {
                    transport.sendAsync(resultMsg);
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }

            return(true);
        }
Example #8
0
        private void  onReceiveSubscribeRequest(MessageEnvelope message, ITransport transport)
        {
            RemoteConsumer <T> remoteConsumer = new RemoteConsumer <T>(
                message.Body.SubscribeRequest.ConsumerId, transport
                );

            MessageEnvelope     resultMsg           = new MessageEnvelope();
            MessageBody         body                = new MessageBody();
            SubscribeResult     subscribeResult     = new SubscribeResult();
            SubscribeResultCode subscribeResultCode = new SubscribeResultCode();

            body.selectSubscribeResult(subscribeResult);
            resultMsg.Body = body;
            resultMsg.Id   = message.Id;
            try
            {
                addConsumer(remoteConsumer, message.Body.SubscribeRequest.Persistence, message.Body.SubscribeRequest.Filter);
                subscribeResultCode.Value = SubscribeResultCode.EnumType.success;
            }
            catch (System.Exception e)
            {
                subscribeResultCode.Value = SubscribeResultCode.EnumType.alreadySubscription;
                subscribeResult.Details   = (e.ToString());
            }
            subscribeResult.Code = subscribeResultCode;
            try
            {
                transport.sendAsync(resultMsg);

                if (subscribeResult.Code.Value == SubscribeResultCode.EnumType.success &&
                    message.Body.SubscribeRequest.Persistence)
                {
                    IList <IMessage <T> > messages = persistStorage.getMessagesToSend(remoteConsumer);
                    lock (queue)
                    {
                        queue.push(messages);
                    }
                    awaitMessageEvent.Set();
                }
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #9
0
        public ISubscribeResult Subscribe(CancellationToken unsubscribe)
        {
            var subscription = new SubscribeResult();

            _subscriptions[unsubscribe] = subscription;

            unsubscribe.Register(() =>
            {
                if (_subscriptions.TryRemove(unsubscribe, out var sub))
                {
                    OnUnsubscribing(sub);
                    sub.TryComplete();
                }
            });

            OnSubscribed(subscription);
            return(subscription);
        }
Example #10
0
        public MqttSubAckPacket Create(MqttSubscribePacket subscribePacket, SubscribeResult subscribeResult)
        {
            if (subscribePacket == null)
            {
                throw new ArgumentNullException(nameof(subscribePacket));
            }

            if (subscribeResult == null)
            {
                throw new ArgumentNullException(nameof(subscribeResult));
            }

            var subAckPacket = new MqttSubAckPacket
            {
                PacketIdentifier = subscribePacket.PacketIdentifier,
                ReasonCodes      = subscribeResult.ReasonCodes,
                ReasonString     = subscribeResult.ReasonString,
                UserProperties   = subscribeResult.UserProperties
            };

            return(subAckPacket);
        }
Example #11
0
            public async Task <Ruyi.SDK.Http.SubscribeReply> SubscribeAsync(Ruyi.SDK.Http.SubscribeRequest message, CancellationToken cancellationToken)
            {
                await OutputProtocol.WriteMessageBeginAsync(new TMessage("Subscribe", TMessageType.Call, SeqId), cancellationToken);

                var args = new SubscribeArgs();

                args.Message = message;

                await args.WriteAsync(OutputProtocol, cancellationToken);

                await OutputProtocol.WriteMessageEndAsync(cancellationToken);

                await OutputProtocol.Transport.FlushAsync(cancellationToken);

                var msg = await InputProtocol.ReadMessageBeginAsync(cancellationToken);

                if (msg.Type == TMessageType.Exception)
                {
                    var x = await TApplicationException.ReadAsync(InputProtocol, cancellationToken);

                    await InputProtocol.ReadMessageEndAsync(cancellationToken);

                    throw x;
                }

                var result = new SubscribeResult();
                await result.ReadAsync(InputProtocol, cancellationToken);

                await InputProtocol.ReadMessageEndAsync(cancellationToken);

                if (result.__isset.success)
                {
                    return(result.Success);
                }
                throw new TApplicationException(TApplicationException.ExceptionType.MissingResult, "Subscribe failed: unknown result");
            }
        /**
          * Creates the print format of the subscribe result value.
          * @param resultArray
          * @return
          */

        private String createMessage(SubscribeResult[] resultArray)
        {
            string resultString = "SusbscribeResult :\n";
            if (resultArray != null)
            {
                SubscribeResult result = resultArray[0];
                if (result.Success)
                {
                    resultString = resultString + "\nSubscribe Result: \n";
                    resultString = resultString + "\n\tAccount Id: " + result.AccountId;
                    resultString = resultString + "\n\tAccount Number: " + result.AccountNumber;
                    resultString = resultString + "\n\tSubscription Id: " + result.SubscriptionId;
                    resultString = resultString + "\n\tSubscription Number: " + result.SubscriptionNumber;
                    resultString = resultString + "\n\tInvoice Number: " + result.InvoiceNumber;
                    resultString = resultString + "\n\tPayment Transaction: " + result.PaymentTransactionNumber;
                }
                else
                {
                    resultString = resultString + "\nSubscribe Failure Result: \n";
                    Error[] errors = result.Errors;
                    if (errors != null)
                    {
                        foreach (Error error in errors)
                        {
                            resultString = resultString + "\n\tError Code: " + error.Code;
                            resultString = resultString + "\n\tError Message: " + error.Message;
                        }
                    }
                }
            }
            return resultString;
        }
Example #13
0
 public virtual void OnUnsubscribing(SubscribeResult subscription)
 {
 }
Example #14
0
 public override void OnSubscribed(SubscribeResult subscription)
 {
     subscription.WriteAsync(_welcomeItem);
 }
Example #15
0
 public override void OnUnsubscribing(SubscribeResult subscription)
 {
     if (!_byeItem.Equals(default))
Example #16
0
 public virtual void OnSubscribed(SubscribeResult subscription)
 {
 }
Example #17
0
        public MqttSubAckPacket CreateSubAckPacket(MqttSubscribePacket subscribePacket, SubscribeResult subscribeResult)
        {
            if (subscribePacket == null)
            {
                throw new ArgumentNullException(nameof(subscribePacket));
            }
            if (subscribeResult == null)
            {
                throw new ArgumentNullException(nameof(subscribeResult));
            }

            var subackPacket = new MqttSubAckPacket
            {
                PacketIdentifier = subscribePacket.PacketIdentifier
            };

            subackPacket.ReasonCodes.AddRange(subscribeResult.ReasonCodes);

            return(subackPacket);
        }
Example #18
0
 public override void OnSubscribed(SubscribeResult subscription)
 {
     subscription.WriteAsync("value").AsTask().Wait();
 }
        public List<SubscribeResponseHolder> Subscribe(List<SubscribeRequest> input)
        {
            List<SubscribeResponseHolder> results = new List<SubscribeResponseHolder>();
            SubscribeResult[] res = new SubscribeResult[]{};
            bool done = false;
            int subscribeNum = 50;
            while (!done)
            {
                List<SubscribeRequest> doWork = new List<SubscribeRequest>() { };

                if (input.Count > subscribeNum)
                {
                    List<SubscribeRequest> subList = input.GetRange(0, subscribeNum);
                    for (int i = 0; i < subscribeNum; i++)
                    {
                        SubscribeRequest temp = subList[i];
                        doWork.Add(temp);
                        input.Remove(temp);
                    }
                }
                else
                {
                    done = true;
                    doWork = input;
                }
                CheckTime();
                try
                {
                    res = svc.subscribe(sh, doWork.ToArray());
                }
                catch (FaultException e)
                {
                    SubscribeResponseHolder error = new SubscribeResponseHolder();
                    error.Message = e.Message;
                    error.Success = false;
                    results.Add(error);
                    return results;
                }
                foreach (SubscribeResult sr in res)
                {
                    SubscribeResponseHolder temp = new SubscribeResponseHolder();
                    if (sr.Success)
                    {
                        temp.Success = true;
                        temp.SubRes = sr;
                    }
                    else
                    {
                        temp.Success = false;
                        temp.Message = sr.Errors[0].Message;
                    }
                    results.Add(temp);
                }
            }
            return results;
        }