本文整理汇总了TypeScript中amqplib.Channel类的典型用法代码示例。如果您正苦于以下问题:TypeScript Channel类的具体用法?TypeScript Channel怎么用?TypeScript Channel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Channel类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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:
.then((channel: Channel) => {
self._channel = channel;
// Assert Queue
channel.assertQueue(
self.queueName,
{ durable: false }
);
channel.prefetch(1);
if (self.verboseOn) {
console.log(`Awaiting RPC Requests On: ${self.queueName}`);
}
// Consume Messages
self.consumeChannel.apply(self, [channel, actionFunction]);
return self._channel;
});
示例3:
.then((channel: Channel) => {
self._channel = channel;
channel.setMaxListeners(0);
// Action to take when message received
self.consumeChannel.apply(self, [channel]);
return channel;
});
示例4: 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);
});
}
);
}
示例5: Buffer
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);
});
示例6: cancel
public async cancel() {
if (!this.isAcked) throw new Error('cannot cancel before ack')
await this.channel.cancel(this.message.fields['consumerTag'])
await this.channel.close()
this.emit('cancel')
}
示例7: reject
public reject(requeue?: boolean) {
this.checkAck()
return this.channel.reject(this.message, requeue)
}
示例8: nack
public nack(allUpTo?: boolean, requeue?: boolean) {
this.checkAck()
return this.channel.nack(this.message, allUpTo, requeue)
}
示例9: ack
public ack(allUpTo?: boolean) {
this.checkAck()
return this.channel.ack(this.message, allUpTo)
}