UNPKG

ali-mns-sdk

Version:

The nodejs SDK for aliyun mns service

128 lines 11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Util = require("util"); const MQ_1 = require("./MQ"); const NotifyRecv_1 = require("./NotifyRecv"); const Debug_1 = require("./utils/Debug"); class MQBatch extends MQ_1.MQ { constructor(name, account, region) { super(name, account, region); this._notifyRecv = null; } sendP(msg, priority, delaySeconds) { if (typeof msg === 'string') { return super.sendP(msg, priority, delaySeconds); } else { const body = { Messages: { '#list': [] } }; for (const m of msg) { const b64 = this.utf8ToBase64(m.getMsg()); const xMsg = { Message: { MessageBody: b64 } }; xMsg.Message.Priority = m.getPriority(); xMsg.Message.DelaySeconds = m.getDelaySeconds(); body.Messages['#list'].push(xMsg); } Debug_1.default('POST ' + this._url, body); this._openStack.accumulateNextGASend('MQBatch.sendP'); return this._openStack.sendP('POST', this._url, body); } } recvP(waitSeconds, numOfMessages) { if (numOfMessages === undefined) numOfMessages = 16; if (numOfMessages && numOfMessages > 1) { const self = this; let url = this._url; url += '?numOfMessages=' + numOfMessages; if (waitSeconds) url += '&waitseconds=' + waitSeconds; Debug_1.default('GET ' + url); return new Promise((resolve, reject) => { // use the timeout mechanism inside the request module const options = { timeout: self._recvTolerance * 1000 }; if (waitSeconds) options.timeout += waitSeconds * 1000; self._openStack.accumulateNextGASend('MQBatch.recvP'); self._openStack.sendP('GET', url, null, null, options).then(data => { Debug_1.default(data); self.decodeB64Messages(data); resolve(data); }, ex => { // for compatible with 1.x, still use literal "timeout" if (ex.code === 'ETIMEDOUT') { const exTimeout = new Error('timeout'); exTimeout.innerException = ex; exTimeout.code = ex.code; reject(exTimeout); } else { reject(ex); } }); }); } else { return super.recvP(waitSeconds); } } peekP(numOfMessages) { if (numOfMessages === undefined) numOfMessages = 16; if (numOfMessages && numOfMessages > 1) { const self = this; let url = this._url + '?peekonly=true'; url += '&numOfMessages=' + numOfMessages; Debug_1.default('GET ' + url); this._openStack.accumulateNextGASend('MQBatch.peekP'); return this._openStack.sendP('GET', url).then(data => { Debug_1.default(data); self.decodeB64Messages(data); return data; }); } else { return super.peekP(); } } deleteP(receiptHandle) { if (typeof receiptHandle === 'string') { super.deleteP(receiptHandle); } else { Debug_1.default('DELETE ' + this._url, receiptHandle); const body = { ReceiptHandles: { '#list': [] } }; for (const h of receiptHandle) { const r = { ReceiptHandle: h }; body.ReceiptHandles['#list'].push(r); } this._openStack.accumulateNextGASend('MQBatch.deleteP'); return this._openStack.sendP('DELETE', this._url, body); } } // 消息通知.每当有消息收到时,都调用cb回调函数 // 如果cb返回true,那么将删除消息,否则保留消息 notifyRecv(cb, waitSeconds, numOfMessages) { // lazy create if (this._notifyRecv === null) this._notifyRecv = new NotifyRecv_1.NotifyRecv(this); return this._notifyRecv.notifyRecv(cb, waitSeconds || 5, numOfMessages || 16); } decodeB64Messages(data) { if (data && data.Messages && data.Messages.Message) { if (!Util.isArray(data.Messages.Message)) { // Just a single message, use an array to hold it const msg = data.Messages.Message; data.Messages.Message = [msg]; } for (const msg of data.Messages.Message) { if (msg.MessageBody) msg.MessageBody = this.base64ToUtf8(msg.MessageBody); } } else { super.decodeB64Messages(data); } } } exports.MQBatch = MQBatch; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTVFCYXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9NUUJhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBRzdCLDZCQUEwQjtBQUUxQiw2Q0FBMEM7QUFDMUMseUNBQWtDO0FBRWxDLE1BQWEsT0FBUSxTQUFRLE9BQUU7SUFDN0IsWUFBWSxJQUFZLEVBQUUsT0FBZ0IsRUFBRSxNQUFlO1FBQ3pELEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBd0hyQixnQkFBVyxHQUFxQixJQUFJLENBQUM7SUF2SC9DLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBbUIsRUFBRSxRQUFpQixFQUFFLFlBQXFCO1FBQ3hFLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ2pEO2FBQU07WUFDTCxNQUFNLElBQUksR0FBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELEtBQUssTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUNuQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLElBQUksR0FBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFFaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxD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