egg-ons-http
v1.0.2
Published
[![NPM version][npm-image]][npm-url] [![build status][travis-image]][travis-url] [![Test coverage][codecov-image]][codecov-url] [![David deps][david-image]][david-url] [![Known Vulnerabilities][snyk-image]][snyk-url] [![npm download][download-image]][down
Downloads
2
Readme
egg-ons-http
aliyun ons http plugin for egg
Install
$ npm i egg-ons-http --save
Usage
// {app_root}/config/plugin.js
exports.onsHttp = {
enable: true,
package: 'egg-ons-http',
};
Configuration
// {app_root}/config/config.default.js
exports.ons = {
default: {
accessKey: 'your-accessKey',
secretKey: 'your-secretKey',
instanceId:'', // 公网实例不要填,会报权限问题
// onsAddr: 'http://.mqrest.cn-qingdao-public.aliyuncs.com', // 使用http接入地址
},
sub: [{
consumerGroup: 'your-consumer-group',
topics: [
'your-topic',
],
}],
pub: [{
topics: [
'your-topic',
],
}],
};
see config/config.default.js for more detail.
Example
Consumer
put your subscription codes under the folder {app_root}/app/ons
and named as the topic name e.g TP_NAME.js
.
├── app
│ ├── ons
│ │ └── TP_NAME.js
│ ├── public
│ └── router.js
├── config
│ └── config.default.js
├── package.json
you should implment a subscriber as blow
// TP_NAME.js
'use strict';
class TestSubscriber {
constructor(ctx) {
this.ctx = ctx;
}
* subscribe(msg) {
yield this.ctx.service.messageService.process(msg);
}
static get subExpression() {
return 'TagA';
}
}
module.exports = TestSubscriber;
see RPC for more detail.
Producer
using app.ons / ctx.ons
to create & send messages
const Message = ctx.ons.Message;
const msg = new Message('TP_NAME', // topic
'TagA', // tag
'Hello ONS !!!' // body
);
const sendResult = yield ctx.ons.send(msg);