public void BatchDeleteMessage(List <string> vtReceiptHandle) { if (vtReceiptHandle.Count == 0) { return; } var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.DeleteMessage); parameters.Add("queueName", this.QueueName); for (int i = 0; i < vtReceiptHandle.Count; i++) { string k = "receiptHandle." + Convert.ToString(i + 1); parameters.Add(k, vtReceiptHandle[i]); } var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <GeneralCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); }
public CMQMessage[] BatchReceiveMessage(int numOfMsg, int pollingWaitSeconds) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.BatchReceiveMessage); parameters.Add("queueName", this.QueueName); parameters.Add("numOfMsg", Convert.ToString(numOfMsg)); if (pollingWaitSeconds > 0) { parameters.Add("UserpollingWaitSeconds", Convert.ToString(pollingWaitSeconds)); parameters.Add("pollingWaitSeconds", Convert.ToString(pollingWaitSeconds)); } else { parameters.Add("UserpollingWaitSeconds", Convert.ToString(30000)); } var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <CMQMessageCollection>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); return(result.MsgInfoList ?? new CMQMessage[] { }); }
public CMQMessage ReceiveMessage(int pollingWaitSeconds) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.ReceiveMessage); parameters.Add("queueName", this.QueueName); if (pollingWaitSeconds > 0) { parameters.Add("UserpollingWaitSeconds", Convert.ToString(pollingWaitSeconds)); parameters.Add("pollingWaitSeconds", Convert.ToString(pollingWaitSeconds)); } else { parameters.Add("UserpollingWaitSeconds", Convert.ToString(30000)); } var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <CMQMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); if (result.Code == 10200) { return(null); } return(result); }
public string[] BatchSendMessage(List <string> vtMsgBody, int delayTime) { if (vtMsgBody.Count == 0 || vtMsgBody.Count > 16) { throw new ClientException("Error: message size is empty or more than 16"); } var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.BatchSendMessage); parameters.Add("queueName", this.QueueName); for (int i = 0; i < vtMsgBody.Count; i++) { string k = "msgBody." + Convert.ToString(i + 1); parameters.Add(k, vtMsgBody[i]); } parameters.Add("delaySeconds", Convert.ToString(delayTime)); var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <CMQBatchMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); return(result.MsgList ?? new string[] { }); }
public void CreateTopic(string topicName, int maxMsgSize, int filterType = 1) { Guard.ArgumentNotNullOrEmpty(topicName, "topicName"); var parameters = this.Meta.CreateGeneralParameters(CMQConstant.CreateTopic); parameters.Add("topicName", topicName); parameters.Add("filterType", Convert.ToString(filterType)); if (maxMsgSize < 1 || maxMsgSize > 65536) { throw new ClientException("Invalid paramter: maxMsgSize > 65536 or maxMsgSize < 1 "); } var signature = Sign.Signature( parameters, this.Meta.Endpoint.Topic, this.Meta.Path, this.Meta.SecretKey, "POST", this.Meta.SignMethod); parameters.Add("Signature", signature); var result = string.Concat(this.Meta.Endpoint.Topic, this.Meta.Path) .GetUriJsonContent <GeneralCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); }
public void SetTopicAttributes(int maxMsgSize) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.SetTopicAttributes); parameters.Add("topicName", this.topicName); if (maxMsgSize < 0 || maxMsgSize > 65536) { throw new ClientException("Invalid parameterseter maxMsgSize < 0 or maxMsgSize > 65536"); } parameters.Add("maxMsgSize", Convert.ToString(maxMsgSize)); var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Topic, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <GeneralCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); return; }
private void CreateQueue(string queueName, QueueMeta meta) { var parameters = this.Meta.CreateGeneralParameters(CMQConstant.CreateQueue); if (queueName == "") { throw new ClientException("Invalid parameter: queueName is empty"); } else { parameters.Add("queueName", queueName); } if (meta.MaxMsgHeapNum > 0) { parameters.Add("maxMsgHeapNum", Convert.ToString(meta.MaxMsgHeapNum)); } if (meta.PollingWaitSeconds > 0) { parameters.Add("pollingWaitSeconds", Convert.ToString(meta.PollingWaitSeconds)); } if (meta.VisibilityTimeout > 0) { parameters.Add("visibilityTimeout", Convert.ToString(meta.VisibilityTimeout)); } if (meta.MaxMsgSize > 0) { parameters.Add("maxMsgSize", Convert.ToString(meta.MaxMsgSize)); } if (meta.MsgRetentionSeconds > 0) { parameters.Add("msgRetentionSeconds", Convert.ToString(meta.MsgRetentionSeconds)); } var signature = Sign.Signature(parameters, this.Meta.Endpoint.Queue, this.Meta.Path, this.Meta.SecretKey, "POST", this.Meta.SignMethod); parameters.Add("Signature", signature); var result = string.Concat(this.Meta.Endpoint.Queue, this.Meta.Path) .GetUriJsonContent <GeneralCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); return; }
public string[] BatchPublishMessage(List <string> vMsgBody, List <string> vTagList, string routingKey) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.BatchPublishMessage); parameters.Add("topicName", this.topicName); if (routingKey != null) { parameters.Add("routingKey", routingKey); } if (vMsgBody != null) { for (int i = 0; i < vMsgBody.Count; i++) { string k = "msgBody." + Convert.ToString(i + 1); parameters.Add(k, vMsgBody[i]); } } if (vTagList != null) { for (int i = 0; i < vTagList.Count; i++) { string k = "msgTag" + Convert.ToString(i + 1); parameters.Add(k, vTagList[i]); } } var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Topic, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <CMQBatchMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); return(result.MsgList ?? new string[] { }); }
public static string Signature( SortedDictionary <string, string> request, string endpoint, string path, string screct, string httpMethod, string method) { var plaintext = string.Concat(httpMethod , endpoint.TrimStart("http://".ToCharArray()).TrimStart("https://".ToCharArray()) , path , "?", string.Join("&", request.OrderBy(o => o.Key, StringComparer.Ordinal).Select((ctx) => { return($"{ctx.Key.Replace("_", ".")}={ctx.Value}"); }))); return(Sign.Signature(plaintext, screct, method)); }
public void SetSubscriptionAttributes(SubscriptionMeta meta) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.SetSubscriptionAttributes); parameters.Add("topicName", this.TopicName); parameters.Add("subscriptionName", this.SubscriptionName); if (meta.NotifyStrategy != "") { parameters.Add("notifyStrategy", meta.NotifyStrategy); } if (meta.NotifyContentFormat != "") { parameters.Add("notifyContentFormat", meta.NotifyContentFormat); } if (meta.FilterTag != null) { for (int i = 0; i < meta.FilterTag.Count; ++i) { parameters.Add("filterTag." + Convert.ToString(i), meta.FilterTag[i]); } } if (meta.BindingKey != null) { for (int i = 0; i < meta.BindingKey.Count; ++i) { parameters.Add("bindingKey." + Convert.ToString(i), meta.BindingKey[i]); } } var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Topic, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <GeneralCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); }
public QueueMeta GetQueueAttributes() { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.GetQueueAttributes); parameters.Add("queueName", this.QueueName); var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var url = this.GenerateRequest(); var result = url.GetUriJsonContent <QueueMeta>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); return(result.Code.Equals(0) ? result : null); }
public void DeleteMessage(string receiptHandle) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.DeleteMessage); parameters.Add("queueName", this.QueueName); parameters.Add("receiptHandle", receiptHandle); var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <GeneralCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); return; }
public void ClearFilterTags() { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.ClearSUbscriptionFIlterTags); parameters.Add("topicName", this.TopicName); parameters.Add("subscriptionName", this.SubscriptionName); var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <GeneralCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); }
public void SetQueueAttributes(QueueMeta meta) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.SetQueueAttributes); parameters.Add("queueName", this.QueueName); if (meta.MaxMsgHeapNum > 0) { parameters.Add("maxMsgHeapNum", Convert.ToString(meta.MaxMsgHeapNum)); } if (meta.PollingWaitSeconds > 0) { parameters.Add("pollingWaitSeconds", Convert.ToString(meta.PollingWaitSeconds)); } if (meta.VisibilityTimeout > 0) { parameters.Add("visibilityTimeout", Convert.ToString(meta.VisibilityTimeout)); } if (meta.MaxMsgSize > 0) { parameters.Add("maxMsgSize", Convert.ToString(meta.MaxMsgSize)); } if (meta.MsgRetentionSeconds > 0) { parameters.Add("msgRetentionSeconds", Convert.ToString(meta.MsgRetentionSeconds)); } var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <QueueMeta>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); }
public SubscriptionMeta GetSubscriptionAttributes() { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.GetSubscriptionAttributes); parameters.Add("topicName", this.TopicName); parameters.Add("subscriptionName", this.SubscriptionName); var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Topic, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <SubscriptionMeta>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); return(result.Code.Equals(0) ? result : null); }
public int ListSubscription(int offset, int limit, string searchWord, List <string> subscriptionList) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.ListSubscriptionByTopic); parameters.Add("topicName", this.topicName); if (searchWord != "") { parameters.Add("searchWord", searchWord); } if (offset >= 0) { parameters.Add("offset", Convert.ToString(offset)); } if (limit > 0) { parameters.Add("limit", Convert.ToString(limit)); } var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Topic, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <SubscriptionListCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); return(result.TotalCount); }
public string SendMessage(string msgBody, int delayTime) { var parameters = this.ClientMeta.CreateGeneralParameters(CMQConstant.SendMessage); parameters.Add("queueName", this.QueueName); parameters.Add("msgBody", msgBody); parameters.Add("delaySeconds", Convert.ToString(delayTime)); var signature = Sign.Signature( parameters, this.ClientMeta.Endpoint.Queue, this.ClientMeta.Path, this.ClientMeta.SecretKey, "POST", this.ClientMeta.SignMethod); parameters.Add("Signature", signature); var result = this.GenerateRequest() .GetUriJsonContent <GeneralMessageCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); return(result.MsgId); }
public void CreateSubscribe( string topicName, string subscriptionName, string queueName, SubscriptionMeta meta) { if (meta.FilterTag != null && meta.FilterTag.Count > 5) { throw new ClientException("Invalid parameter:Tag number > 5"); } var parameters = this.Meta.CreateGeneralParameters(CMQConstant.Subscribe); if (topicName == "") { throw new ClientException("Invalid parameter: topicName is empty"); } else { parameters.Add("topicName", topicName); } if (subscriptionName == "") { throw new ClientException("Invalid parameter: subscriptionName is empty"); } else { parameters.Add("subscriptionName", subscriptionName); } if (meta.Endpoint == "") { throw new ClientException("Invalid parameter: endpoint is empty"); } else { parameters.Add("endpoint", meta.Endpoint); } if (meta.Protocal == "") { throw new ClientException("Invalid parameter: protocol is empty"); } else { parameters.Add("protocol", meta.Protocal); } if (meta.NotifyStrategy == "") { throw new ClientException("Invalid parameter: notifyStrategy is empty"); } else { parameters.Add("notifyStrategy", meta.NotifyStrategy); } if (meta.NotifyContentFormat == "") { throw new ClientException("Invalid parameter: notifyContentFormat is empty"); } else { parameters.Add("notifyContentFormat", meta.NotifyContentFormat); } if (meta.FilterTag != null) { for (int i = 0; i < meta.FilterTag.Count; ++i) { parameters.Add("filterTag." + Convert.ToString(i), meta.FilterTag[i]); } } if (meta.BindingKey != null) { for (int i = 0; i < meta.BindingKey.Count; ++i) { parameters.Add("bindingKey." + Convert.ToString(i), meta.BindingKey[i]); } } var signature = Sign.Signature( parameters, this.Meta.Endpoint.Topic, this.Meta.Path, this.Meta.SecretKey, "POST", this.Meta.SignMethod); parameters.Add("Signature", signature); var result = string.Concat(this.Meta.Endpoint.Topic, this.Meta.Path) .GetUriJsonContent <GeneralCMQBaseMessage>((http) => { return(http.Wrap(parameters.CreateRequestBody())); }); result.IfHasErrorThrowException(); }