{"_id":"@chandre/egg-amqp","_rev":"28-d45fefd08928a4f2613dfdfb4ad2bef5","name":"@chandre/egg-amqp","dist-tags":{"latest":"1.1.4"},"versions":{"1.1.0":{"name":"@chandre/egg-amqp","version":"1.1.0","description":"amqplib,rcp,queue","eggPlugin":{"name":"amqp"},"keywords":["egg","eggPlugin","egg-plugin"],"dependencies":{"amqplib":"^0.9.0","is-type-of":"^1.2.1","koa-compose":"^4.1.0","underscore":"^1.13.3","uuid":"^8.3.2"},"devDependencies":{"autod":"^3.0.1","autod-egg":"^1.1.0","egg":"^2.16.0","egg-bin":"^4.11.0","egg-ci":"^1.11.0","egg-mock":"^3.21.0","eslint":"^5.13.0","eslint-config-egg":"^7.1.0"},"engines":{"node":">=8.0.0"},"scripts":{"test":"npm run lint -- --fix && egg-bin pkgfiles && npm run test-local","test-local":"egg-bin test","cov":"egg-bin cov","lint":"eslint .","ci":"egg-bin pkgfiles --check && npm run lint && npm run cov","pkgfiles":"egg-bin pkgfiles","autod":"autod"},"ci":{"version":"8, 10"},"repository":{"type":"git","url":"git+https://github.com/eggjs/egg-amqp.git"},"bugs":{"url":"https://github.com/eggjs/egg/issues"},"homepage":"https://github.com/eggjs/egg-amqp#readme","author":{"name":"chandre"},"license":"MIT","_id":"@chandre/egg-amqp@1.1.0","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-Nl6KL6kS9b4NSzyy53riB6v8Tp08dpYKoP42AntkF9PnEuqcILB9wZlOKPYHrLLFnuacefZ6BeSi3AcQUsl13Q==","shasum":"b82ef4c1a4c1e984559634ac078fcd52dc174ed8","tarball":"https://registry.npmjs.org/@chandre/egg-amqp/-/egg-amqp-1.1.0.tgz","fileCount":14,"unpackedSize":27393,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCL6nzxT1frQqXhev90y8KdaOskkbRds1GYeKtcmjwv1AIhAN1l3s1odgZZQd2OeDaAw2r6gUJAHI8I8DvVF+RoWcPS"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqtxOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpd4Q/+NIEru02dnwhuplQ8fatqDnXCnfjCIgkC8rxDvABJjO0V+8mG\r\nB5kMnmZkjjurMCAbr7gp2LrTo7iGuj+kVvCm6gg8IL0fIXLZrm6yWOyV1NLC\r\nEUixaAsK5aUsxzQUMIaZuejKZXI2w5o8jcvY5P30Q1VMMG9ClHeule2QodRp\r\nQ+pbvPYVUV2LYrgmN2o8ttTuH3BmNZJm8d52H2XUe+IFq/bVPiFzqPhvaIIX\r\nJ0O6r7QGgndd1fyrrdRtKhqpbHvZS5HeJBIraONu3mVDvKmLtWwWfKq7B36n\r\ncp0Ry0s1haNsfRSDxVlr5eULlKkCf0YotmnLJKzJkvNQxuLBMfDnFX15r8gz\r\nOdSgIIl54NhwgLmIs9mjHW4lRCcwJczKNlilMFvK8M4Pd3ndlC7dM2i8Vxca\r\nueD8ulYkpAGzh5XjwWoVMbPTTbnkKCBBsrG0Kti+biyJIgNzZdkINlvKlp+A\r\niula5XgFx9Dm/vFm5FVQOi36DM3gDFcrQ6i8t927A3iCVxz5pnv96+heG1dE\r\n07gq+ybBd5x6v0V6e71s8omhTtKdntZzvFClcDjkoCrk2o07r2xT6MWuP81w\r\n+saHLQkrz/vuCePq4JqtGbNMXSL49ZHTwID8kPTvehem5EWjK2CTYxozdS/U\r\nKh67PtSyuqAHjYCYG6rcTxjR3J5k/1yf4pI=\r\n=bRS8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"chandre","email":"chandre21cn@gmail.com"},"directories":{},"maintainers":[{"name":"chandre","email":"chandre21cn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/egg-amqp_1.1.0_1655364686281_0.9019365639155781"},"_hasShrinkwrap":false},"1.1.2":{"name":"@chandre/egg-amqp","version":"1.1.2","description":"amqplib,rcp,queue","eggPlugin":{"name":"amqp"},"keywords":["egg","eggPlugin","egg-plugin"],"dependencies":{"amqplib":"^0.9.0","is-type-of":"^1.2.1","koa-compose":"^4.1.0","underscore":"^1.13.3","uuid":"^8.3.2"},"devDependencies":{"autod":"^3.0.1","autod-egg":"^1.1.0","egg":"^2.16.0","egg-bin":"^4.11.0","egg-ci":"^1.11.0","egg-mock":"^3.21.0","eslint":"^5.13.0","eslint-config-egg":"^7.1.0"},"engines":{"node":">=8.0.0"},"scripts":{"test":"npm run lint -- --fix && egg-bin pkgfiles && npm run test-local","test-local":"egg-bin test","cov":"egg-bin cov","lint":"eslint .","ci":"egg-bin pkgfiles --check && npm run lint && npm run cov","pkgfiles":"egg-bin pkgfiles","autod":"autod"},"ci":{"version":"8, 10"},"repository":{"type":"git","url":"git+https://github.com/eggjs/egg-amqp.git"},"bugs":{"url":"https://github.com/eggjs/egg/issues"},"homepage":"https://github.com/eggjs/egg-amqp#readme","author":{"name":"chandre"},"license":"MIT","_id":"@chandre/egg-amqp@1.1.2","_nodeVersion":"16.14.0","_npmVersion":"8.5.4","dist":{"integrity":"sha512-fwXIyqSMVeFehHd0bv6mfSDMSLpF7ybWmMe3N3+17h86fv1vwn/1kCbOPkWMLQ9UPcQWnob8FBYAbdm18kZKlw==","shasum":"c0f0c69f22772e6ad97f8d0efe445c2efa3c6823","tarball":"https://registry.npmjs.org/@chandre/egg-amqp/-/egg-amqp-1.1.2.tgz","fileCount":14,"unpackedSize":27776,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFcsNrTWHdxWq/Deh8tpEGe/Sb9a8ig+O+Ww7OYXKp+VAiEA88WRVyCpXcgyoONszrSLamjbuqqfPS10Sm6qSp5Q3es="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitJ/rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo7Ug//VdalKzO6Ci8qiN73cE9IkQv5ODVg5M3uCSy9IiPjHnokTALr\r\nAwBTZBwU88HTQT205wflahiA/S+YjQOMusNL0lRNjyFs85bpzY2PXvGS96hl\r\nO80NsvUpJH3nBxZycLeqBBoDdr6jsdgGtUEm/CzSRGF+SB8kjDCJG0J4c8jK\r\nKZvdVFOjRAuHDjML6LgnWmm13AcB2t40CQutl6xLrWpA1p5lG6ZXz2XjDrHN\r\n7b5X/xW1m40nlnWw5M+jAQCOZ6tsYv2E7NGSyopad05NCr1r1WaVdLaOaD/v\r\nloQnfaIeGAnk8HpgXXRlNeVFcbTa4yRV3IDnNLhR5CeNWqLHf3SmcP5qzNmS\r\nk+Jbig+0SMsoPGVNOXurz8JY2AIwmW29A+b/WOkoq9EtHLyau3dNtYQs5nx0\r\nj8h39c6+iIu+lsYVFjTBza5ZSDcldiHEP5qSgCqHctXOuKXNxTan4ZouXQNX\r\n8MGDYOTyXaPpIS879R6k7f3YyptnW7pqH24QS2Jm+lmbfXkVFG4mkXCBO3Fn\r\n0n1twmfo14BbcZAe3K3FqYyT3HRrq+MZHN6BtxZX/pU6o1DoKbPWb+URQVhs\r\nkj82tVoIkEhW1AGVLayo55XVnpPYT1TrL98AjFHluqDayQ6yD3KEb26GDajC\r\nYN2wlcmuzB3M4NTTLc2QLUcl3VtKZ5KvECQ=\r\n=3qrU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"chandre","email":"chandre21cn@gmail.com"},"directories":{},"maintainers":[{"name":"chandre","email":"chandre21cn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/egg-amqp_1.1.2_1656004587591_0.47413452846443893"},"_hasShrinkwrap":false},"1.1.4":{"name":"@chandre/egg-amqp","version":"1.1.4","description":"amqplib,rcp,queue","eggPlugin":{"name":"amqp"},"keywords":["egg","eggPlugin","egg-plugin"],"dependencies":{"amqplib":"^0.9.0","is-type-of":"^1.2.1","koa-compose":"^4.1.0","underscore":"^1.13.3","uuid":"^8.3.2"},"devDependencies":{"autod":"^3.0.1","autod-egg":"^1.1.0","egg":"^2.16.0","egg-bin":"^4.11.0","egg-ci":"^1.11.0","egg-mock":"^3.21.0","eslint":"^5.13.0","eslint-config-egg":"^7.1.0"},"engines":{"node":">=8.0.0"},"scripts":{"test":"npm run lint -- --fix && egg-bin pkgfiles && npm run test-local","test-local":"egg-bin test","cov":"egg-bin cov","lint":"eslint .","ci":"egg-bin pkgfiles --check && npm run lint && npm run cov","pkgfiles":"egg-bin pkgfiles","autod":"autod"},"ci":{"version":"8, 10"},"repository":{"type":"git","url":"git+https://github.com/eggjs/egg-amqp.git"},"bugs":{"url":"https://github.com/eggjs/egg/issues"},"homepage":"https://github.com/eggjs/egg-amqp#readme","author":{"name":"chandre"},"license":"MIT","_id":"@chandre/egg-amqp@1.1.4","_nodeVersion":"18.9.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-2vOm7sn5HCjhIQdlowXMQd1eqyGbjueCvTTn7AS4uwgXMoO2Fpp9bBie6Khe4fUoX0oGN6wMMWpGJQVeMZHNaQ==","shasum":"f768e0ad38b4568b5ae49aa8b5fbe08fc0a8944a","tarball":"https://registry.npmjs.org/@chandre/egg-amqp/-/egg-amqp-1.1.4.tgz","fileCount":14,"unpackedSize":30158,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDgTCCcOtsrA/piUHx/CT42YtiRBAre1ws5JmFSR1kVAIgB+z/ovLDgkJbHFrquiFCPrROEyaOgM9fmRE8DD0H4N0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRDF4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmXA/+O6O4DSqsB4nHd5YhRl7LBkYlF4qlTD+/qLPCNN6vnFstu42q\r\nDWwMACf1zVnjsFdtN8SUM2CKO3StAhLkEO8Zjrdynw6s85FmkZ00ou2i1Sjf\r\nzM0XVDU+6ww9g9MuYncVZzQKGAGbDUxnmP05OvtWSXyiyht6j+j7wh6RNoRD\r\nEPIT2XalKBJYA0iyF4cAkxY1uHCeeSF2mYX8Oe/ocNQoLgOCDhgMXchLXpLl\r\nG82S3t+p7zRPCt4NhgtRjk2kf5buYd3zQnK75aYr5iHCQ1qoO8e1PPUOd6jj\r\nZH40KN2JGXTMiREKpygbabpwdoXhR6NqgCwoqlu+p1fWc+StekoGZa7DDcTa\r\n8ZVXz65YEiTd98bnJHiLdefUCCBVj3GJS9NBt0yRH9BDIMFwXu0VWg2c6C1O\r\n5jTFl265yqPdXYgmv7YMhQN1xt0Wr8dwXHcYFv/Ppt1KWws2Xnl6rJIsdDoa\r\nU65tUm474FIiQg5uN8pa02lGYieSOTTSdjp6NOdAAd1OOk1cq9ir5eGJA3Qe\r\nCXYRBnzRZfOE/S+vmFj8yz9DsqHN/BhNmD9MMxLsmIXy8/mW4M07kebc49mN\r\n31kt7RH/EHIP1mR325TYEa0JCpaR8j9xAwNbmAML+sn9pFgmwem8rrSam3mj\r\nODxRj6vKMBal2sQ22/DWIz1nmdlaJPE5uU0=\r\n=sJkb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"chandre","email":"chandre21cn@gmail.com"},"directories":{},"maintainers":[{"name":"chandre","email":"chandre21cn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/egg-amqp_1.1.4_1665413495932_0.22416821435107193"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-16T17:39:13.263Z","1.0.0":"2022-05-16T17:39:13.533Z","modified":"2022-10-10T14:51:36.170Z","1.0.1":"2022-05-16T18:07:59.814Z","1.0.2":"2022-05-16T18:10:51.779Z","1.0.3":"2022-05-16T18:50:02.022Z","1.0.4":"2022-05-17T10:52:25.853Z","1.0.5":"2022-05-17T13:14:21.379Z","1.0.6":"2022-05-17T14:15:02.318Z","1.0.6-bate":"2022-05-18T17:30:30.477Z","1.0.7-bate":"2022-05-18T17:30:57.145Z","1.0.7":"2022-06-15T10:42:19.070Z","1.0.8":"2022-06-15T11:13:59.814Z","1.0.9":"2022-06-15T17:31:02.291Z","1.1.0":"2022-06-16T07:31:26.487Z","1.1.1":"2022-06-16T07:39:38.984Z","1.1.2":"2022-06-23T17:16:27.768Z","1.1.4":"2022-10-10T14:51:36.094Z"},"maintainers":[{"name":"chandre","email":"chandre21cn@gmail.com"}],"description":"amqplib,rcp,queue","homepage":"https://github.com/eggjs/egg-amqp#readme","keywords":["egg","eggPlugin","egg-plugin"],"repository":{"type":"git","url":"git+https://github.com/eggjs/egg-amqp.git"},"author":{"name":"chandre"},"bugs":{"url":"https://github.com/eggjs/egg/issues"},"license":"MIT","readme":"# @change/egg-amqp\n\n## Install\n\n```bash\n$ npm i @change/egg-amqp --save\n```\n\n## Usage\n\n```js\n// {app_root}/config/plugin.js\nexports.amqp = {\n  enable: true,\n  package: '@change/egg-amqp',\n};\n```\n\n## Configuration\n\n```js\n// {app_root}/config/config.default.js\nexports.amqp = {\n  client: {\n    url: 'amqp://127.0.0.1:5672',\n  }\n};\n```\n\nsee [config/config.default.js](config/config.default.js) for more detail.\n\n## Example\n\n### Controller\n```js\n// {app_root}/app/amqp/controller/queue.js\nconst Controller = require('egg').Controller;\nclass QueueController extends Controller {\n  async test(ctx){\n    const channel = ctx.channel; //amqp 频道\n    const message = ctx.message; //amqp 消息\n    const params = ctx.request.body; //消息内容\n    ctx.body = 'test' \n    channel.ack(message); // 队列处理完成\n  }\n}\nreturn QueueController\n```\n### Middleware\n```js\n// {app_root}/app/amqp/middleware/handlerQueue.js\nmodule.exports = (app) => {\n  return async(ctx, next) => {\n    await next();\n    return ctx.body; //rpc调用回复结果\n  }\n}\n```\n### Router\n```js\nmodule.exports = app => {\n  const { middleware, controller } = app.amqp;\n  // 创建RPC app.amqp.createRpcConsumer(\"前缀\", ['全局中间件']);\n  const RPC = app.amqp.createRpcConsumer('app.rpc', middleware.handlerQueue(app));\n  // 添加RPC队列方法\n  RPC.add({\n    'test': {\n      handler: controller.queue.test //控制器\n      options: { durable: false, autoDelete: true } //队列配置选项\n      consume: { noAck: false } // 消费者配置选项\n    }\n  })\n\n  // 创建队列 app.amqp.createQueueConsumer(\"前缀\", ['全局中间件']);\n  const QUEUE = app.amqp.createQueueConsumer('app.queue');\n  // 添加队列\n  QUEUE.add({\n    'test': {\n      handler: controller.queue.test //控制器\n      prefetch: 1, // 预取队列数据\n      options: { durable: false, autoDelete: true } //队列配置选项\n      consume: { noAck: false } // 消费者配置选项\n      middleware: [], //控制器中间件\n    }\n  })\n\n  // 创建交换机 app.amqp.createExchange(\"前缀\", 交换机配置参数，['交换机队列全局中间件'] )\n  const EXCHANGE = app.amqp.createExchange('app', { \n    name: 'fanout', // 交换机名\n    type: 'fanout', //交换机类型\n    durable: false, \n    autoDelete: true,\n  })\n  // 添加交换机队列\n  EXCHANGE.add({\n    'queue.test': {\n      handler: controller.queue.test //控制器\n      prefetch: 1, // 预取队列数据\n      options: { durable: false, autoDelete: true } //队列配置选项\n      consume: { noAck: false } // 消费者配置选项\n      exchange: {}, // 交换机绑定队列参数\n      routerKey: [], // 交换机队列路由键\n      middleware: [], //控制器中间件\n    }\n  })\n}\n```\n\n### 发送消息到指定队列\n```js\n// this.app.amqp.send(队列名, 消息内容, [队列属性])\nthis.app.amqp.send('app.queue.test', {\n  data: 'hello queue'\n}, {\n  timestamp: 1655360041817,\n})\n\n```\n### RPC队列调用 \n```js\n// this.app.amqp.call(rpc队列, 消息内容, [队列属性])\nthis.app.amqp.call('app.rpc.test', {\n  data: 'hello queue'\n} ).then(res => {\n  console.log(res)\n}).catch(err => {\n  console.log(err)\n});\n\n```\n### 广播消息到交换机中所有队列\n```js\n// this.app.amqp.publish(交换机, 消息内容, [路由键，队列属性])\nthis.app.amqp.publish('app.fanout', {\n  data: 'hello queue'\n})\n```\n\n### RPC消息到交换机中指定路由键\n```js\n// this.app.amqp.callTopic(交换机, 消息内容, 路由键, [队列属性])\nconst result = await this.app.amqp.callTopic('app.fanout', {\n  data: 'hello queue'\n}, 'routerKey')\nconsole.log(result)\n```\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}