本文整理匯總了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)
}