Advertisement
faelsantos

Test Library AMQP CLIENT Node

Aug 4th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { IConnection, pubSub } from 'amqp-client-node'
  2.  
  3. pubSub.logger('info')
  4.  
  5. async function executeTest() {
  6.     const conn: IConnection = await pubSub.createConnetion()
  7.  
  8.     await conn.sub('test.queue.sub', 'test.exchange.sub',
  9.         'test.pub', (message) => {
  10.             message.ack()
  11.             console.log('SUB MESSAGE RECEIVED:', message.content)
  12.         },
  13.         {
  14.             consumer: {
  15.                 noAck: true
  16.             },
  17.             receiveFromYourself: true
  18.         })
  19.  
  20.     setInterval(async () => {
  21.         // 1. APOS PUBLICAR A CONEXÃO EH PERDIDA. CONSEQUENTEMENTE O RPC NAÃO FUNCIONA.
  22.         // 2. COMENTAR O PUB PARA VER A ALERTA (node:9775) [DEP0005] DeprecationWarning: Buffer()
  23.         await conn.pub(
  24.             'test.exchange.sub',
  25.             'test.pub',
  26.             { content: { timestamp: new Date().toISOString() } }
  27.         )
  28.  
  29.         conn.rpcClient('test.exchange.rpc',
  30.             'getTest1',
  31.             [`?id=${new Date().getMilliseconds()}`],
  32.             (err, message) => {
  33.                 if (err) {
  34.                     console.log(`RPC CLIENT 1 - Error: ${err.message}`)
  35.                     return
  36.                 }
  37.                 console.log(`RPC CLIENT 1 - RESULT: ${message.content}`)
  38.             }, {
  39.                 exchange: {
  40.                     type: 'direct',
  41.                     durable: true
  42.                 },
  43.                 rcpTimeout: 100
  44.             })
  45.  
  46.         conn.rpcClient('test.exchange.rpc',
  47.             'getTest2', [], {
  48.                 exchange: {
  49.                     type: 'direct',
  50.                     durable: true
  51.                 },
  52.                 rcpTimeout: 100
  53.             })
  54.             .then(message => {
  55.                 console.log(`RPC CLIENT 2 - RESULT: ${message.content}`)
  56.             })
  57.             .catch(err => {
  58.                 console.log(`RPC CLIENT 2 - Error: ${err.message}`)
  59.             })
  60.     }, 3000)
  61.  
  62.     const server = conn.createRpcServer('test.queue.rpc',
  63.         'test.exchange.rpc', [], {
  64.             exchange: {
  65.                 type: 'direct',
  66.                 durable: true
  67.             }, queue: {
  68.                 durable: true
  69.             }
  70.         })
  71.  
  72.     server.addResource(`getTest1`, (query) => {
  73.         return query
  74.     })
  75.  
  76.     server.addResource(`getTest2`, () => {
  77.         return new Date().toISOString()
  78.     })
  79.  
  80.     server.start().then(() => console.log('RPC SERVER STARTED!!!')).catch(console.log)
  81.  
  82.     process.on('SIGINT', async () => {
  83.         try {
  84.             // await conn.dispose()
  85.             // await conn.close()
  86.         } catch (err) {
  87.             console.log(`ERROR DISPOSE/CLOSE: ${err.message}`)
  88.         }
  89.         process.exit()
  90.     })
  91.  
  92. }
  93.  
  94. executeTest()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement