You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.7 KiB
67 lines
1.7 KiB
'use strict'; |
|
var events = require('events'), |
|
util = require('util'), |
|
fs = require('fs'), |
|
protocol, |
|
definitions = require('./definitions'); |
|
|
|
// Properties: |
|
// - routingKey |
|
// - size |
|
// - deliveryTag |
|
// |
|
// - contentType (default 'application/octet-stream') |
|
// - contentEncoding |
|
// - headers |
|
// - deliveryMode |
|
// - priority (0-9) |
|
// - correlationId |
|
// - replyTo |
|
// - experation |
|
// - messageId |
|
// - timestamp |
|
// - userId |
|
// - appId |
|
// - clusterId |
|
var Message = module.exports = function Message (queue, args) { |
|
var msgProperties = definitions.classes[60].fields; |
|
|
|
events.EventEmitter.call(this); |
|
|
|
this.queue = queue; |
|
|
|
this.deliveryTag = args.deliveryTag; |
|
this.redelivered = args.redelivered; |
|
this.exchange = args.exchange; |
|
this.routingKey = args.routingKey; |
|
this.consumerTag = args.consumerTag; |
|
|
|
for (var i=0, l=msgProperties.length; i<l; i++) { |
|
if (args[msgProperties[i].name]) { |
|
this[msgProperties[i].name] = args[msgProperties[i].name]; |
|
} |
|
} |
|
}; |
|
util.inherits(Message, events.EventEmitter); |
|
|
|
|
|
// Acknowledge receipt of message. |
|
// Set first arg to 'true' to acknowledge this and all previous messages |
|
// received on this queue. |
|
Message.prototype.acknowledge = function (all) { |
|
this.queue.connection._sendMethod(this.queue.channel, definitions.methods.basicAck, |
|
{ reserved1: 0 |
|
, deliveryTag: this.deliveryTag |
|
, multiple: all ? true : false |
|
}); |
|
}; |
|
|
|
// Reject an incoming message. |
|
// Set first arg to 'true' to requeue the message. |
|
Message.prototype.reject = function (requeue) { |
|
this.queue.connection._sendMethod(this.queue.channel, definitions.methods.basicReject, |
|
{ deliveryTag: this.deliveryTag |
|
, requeue: requeue ? true : false |
|
}); |
|
}; |
|
|
|
|