CMQ.js
var Ksort = require("../lib/ksort.js");
var CryptoJS_hmacSHA1 = require("../lib/hmac-sha1.js")
var CryptoJS_Base64Encode = require("../lib/enc-base64-min.js")
/**************************************
GetURL('CreateQueue','queueName')
GetURL('ListQueue',‘searchWord’)
GetURL('DeleteQueue')
GetURL('SendMessage','queueName','msgBody')
GetURL('ReceiveMessage','queueName')
************************************** */
function GetURL() {
var Nonce = Math.round(Math.random() * 65535)
var Timestamp = Math.round(new Date().getTime() / 1000)
var SecretId = 'AKIDObYFgsbTs1uXv36bxxxxxxxxxxxx'
var SecretKey = 'pQoxsZ2QaXFk01oNxxxxxxxxxxxxxx'
var data = [{
Action: 'CreateQueue',
Nonce: Nonce,
SecretId: SecretId,
Timestamp: Timestamp,
maxMsgSize: 65536,
msgRetentionSeconds: 300,//24Hours后无论消费与否都被删除
pollingWaitSeconds: 10,
queueName: arguments[1],
visibilityTimeout: 1,
}, {
Action: 'ListQueue',
Nonce: Nonce,
SecretId: SecretId,
Timestamp: Timestamp,
searchWord: arguments[1]
}, {
Action: 'DeleteQueue',
Nonce: Nonce,
SecretId: SecretId,
Timestamp: Timestamp,
}, {
Action: 'SendMessage',
Nonce: Nonce,
SecretId: SecretId,
Timestamp: Timestamp,
queueName: arguments[1],
msgBody: arguments[2]
}, {
Action: 'ReceiveMessage',
Nonce: Nonce,
SecretId: SecretId,
Timestamp: Timestamp,
queueName: arguments[1],
pollingWaitSeconds: 5
}, {
Action: 'DeleteMessage',
Nonce: Nonce,
SecretId: SecretId,
Timestamp: Timestamp,
queueName: arguments[1],
receiptHandle: arguments[2]
}]
var dataTemp, temp = ''
if (arguments[0] == 'CreateQueue') {
dataTemp = Ksort.ksort(data[0]);
} else if (arguments[0] == 'ListQueue') {
dataTemp = Ksort.ksort(data[1])
} else if (arguments[0] == 'DeleteQueue') {
dataTemp = Ksort.ksort(data[2])
} else if (arguments[0] == 'SendMessage') {
dataTemp = Ksort.ksort(data[3])
} else if (arguments[0] == 'ReceiveMessage') {
dataTemp = Ksort.ksort(data[4])
}
for (var item in dataTemp) {
if (item == 'Action') {
temp += '?' + item + '=';
} else {
temp += '&' + item + '=';
}
temp += dataTemp[item]
}
var StrTemp = 'GETcmq-queue-gz.api.qcloud.com/v2/index.php'
StrTemp += temp;
var result = CryptoJS_Base64Encode.enc.Base64.stringify(CryptoJS_hmacSHA1.HmacSHA1(StrTemp, SecretKey))
var resultStr = 'https://cmq-queue-gz.api.qcloud.com/v2/index.php' + temp + '&Signature=' + encodeURIComponent(result)
console.log(resultStr)
return resultStr
}
module.exports = {
GetURL: GetURL
}
使用说明:
1.填入自己对应的SecretId、Secretkey
2.引入的外部js在前边文章中已经列出:ksort.js、hmac-sha1.js、enc-base64-min.js
3.记得将此接口暴漏,在要使用的js文件中直接引用
4.使用方法已在代码中的注释中了