bmqb-mns
Version:
BMQB aliyun mns
71 lines (59 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _aliMns = require('ali-mns');
var _jsonpack = require('jsonpack');
var _jsonpack2 = _interopRequireDefault(_jsonpack);
var _mq_msg = require('../../mq_msg');
var _mq_msg2 = _interopRequireDefault(_mq_msg);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class MNSAdapter {
constructor(_ref) {
let accountId = _ref.accountId;
let accessKey = _ref.accessKey;
let secretKey = _ref.secretKey;
let topicName = _ref.topicName;
var _ref$region = _ref.region;
let region = _ref$region === undefined ? 'hangzhou' : _ref$region;
if (!accessKey || !secretKey || !accountId) {
throw new Error('invalid arguments');
}
this.config = {
accountId: accountId,
accessKey: accessKey,
secretKey: secretKey,
topicName: topicName,
region: region
};
}
getAccount() {
if (this.account) {
return this.account;
}
this.account = new _aliMns.Account(this.config.accountId, this.config.accessKey, this.config.secretKey);
return this.account;
}
getTopicHandler() {
if (this.topicHandler) {
return this.topicHandler;
}
this.topicHandler = new _aliMns.Topic(this.config.topicName, this.getAccount(), this.config.region);
return this.topicHandler;
}
/**
* @params msg {MQMsg} 支持字符串、json格式 // 暂时不支持延时等
*/
publishMsg(msg) {
return Promise.resolve().then(() => {
if (!(msg instanceof _mq_msg2.default)) {
throw new Error('msg must be a MQMsg Object!');
}
return this.getTopicHandler().publishP(_jsonpack2.default.pack(msg.getMsg())).then(message => {
msg.setId(message.Message.MessageId);
return msg;
});
});
}
}
exports.default = MNSAdapter;