本文整理汇总了TypeScript中amqplib.Channel.consume方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Channel.consume方法的具体用法?TypeScript Channel.consume怎么用?TypeScript Channel.consume使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类amqplib.Channel
的用法示例。
在下文中一共展示了Channel.consume方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: consumeChannel
private consumeChannel(channel: Channel): void {
channel.consume(
REPLY_QUEUE,
(msg: Message) => this.responseEmitter.emit(msg.properties.correlationId, msg.content),
{noAck: true}
);
}
示例2: consumeChannel
private consumeChannel(
channel: Channel,
actionFunction: (message: any, responseCallback: Function) => {}
): void {
channel.consume(
this.queueName,
(msg: Message) => {
const decodedMessage = msg.content.toString();
// Handle Received Message
if (this.verboseOn) {
console.log(`RECEIVED FROM BROKER: ${decodedMessage}`);
}
actionFunction(JSON.parse(decodedMessage), (response: any, error?: Error) => {
if (!response && !error) {
error = new Error('Could not complete request.');
}
if (typeof response !== 'object') {
error = new Error('Response must be a JSON object.');
}
if (error) {
// Failed to handle message
channel.sendToQueue(
msg.properties.replyTo,
new Buffer(JSON.stringify(error)),
{ correlationId: msg.properties.correlationId }
);
} else {
// Send back response
const outgoing: string = JSON.stringify(response);
if (this.verboseOn) {
console.log(`SENDING TO BROKER: ${outgoing}`);
}
channel.sendToQueue(
msg.properties.replyTo,
new Buffer(outgoing),
{ correlationId: msg.properties.correlationId }
);
}
// Send Ack
channel.ack(msg);
});
}
);
}