Class Message (4.8.0)

Message objects provide a simple interface for users to get message data and acknowledge the message.

Package

@google-cloud/pubsub

Example

  subscription 
 . 
 on 
 ( 
 'message' 
 , 
  
 message 
  
 = 
>  
 { 
  
 // { 
  
 //   ackId: 'RUFeQBJMJAxESVMrQwsqWBFOBCEhPjA', 
  
 //   attributes: {key: 'value'}, 
  
 //   data: Buffer.from('Hello, world!'), 
  
 //   id: '1551297743043', 
  
 //   orderingKey: 'ordering-key', 
  
 //   publishTime: new PreciseDate('2019-02-27T20:02:19.029534186Z'), 
  
 //   received: 1551297743043, 
  
 //   length: 13 
  
 // } 
 }); 
 

Constructors

(constructor)(sub, { ackId, message, deliveryAttempt })

  constructor 
 ( 
 sub 
 : 
  
 Subscriber 
 , 
  
 { 
  
 ackId 
 , 
  
 message 
 , 
  
 deliveryAttempt 
  
 } 
 : 
  
 google 
 . 
 pubsub 
 . 
 v1 
 . 
 IReceivedMessage 
 ); 
 

Constructs a new instance of the Message class

Parameters
Name
Description
sub
Subscriber

The parent subscriber.

{ ackId, message, deliveryAttempt }

Properties

ackId

  ackId 
 : 
  
 string 
 ; 
 

attributes

  attributes 
 : 
  
 { 
  
 [ 
 key 
 : 
  
 string 
 ] 
 : 
  
 string 
 ; 
  
 }; 
 

data

  data 
 : 
  
 Buffer 
 ; 
 

deliveryAttempt

  deliveryAttempt 
 : 
  
 number 
 ; 
 

id

  id 
 : 
  
 string 
 ; 
 

length

  get 
  
 length 
 () 
 : 
  
 number 
 ; 
 

The length of the message data.

{number}

orderingKey

  orderingKey 
 ?: 
  
 string 
 ; 
 

parentSpan

  parentSpan 
 ?: 
  
 tracing 
 . 
 Span 
 ; 
 

Tracks a telemetry tracing parent span through the receive process. This will be the original publisher-side span if we have one; otherwise we'll create a "publisher" span to hang new subscriber spans onto.

This needs to be declared explicitly here, because having a public class implement a private interface seems to confuse TypeScript. (And it's needed in unit tests.)

publishTime

  publishTime 
 : 
  
 PreciseDate 
 ; 
 

received

  received 
 : 
  
 number 
 ; 
 

subSpans

  subSpans 
 : 
  
 SubscriberSpans 
 ; 
 

Tracks subscriber-specific telemetry objects through the library.

Methods

ack()

  ack 
 () 
 : 
  
 void 
 ; 
 

Acknowledges the message.

Returns
Type
Description
void
Example
  subscription 
 . 
 on 
 ( 
 'message' 
 , 
  
 message 
  
 = 
>  
 { 
  
 message 
 . 
 ack 
 (); 
 }); 
 

ackFailed(error)

  ackFailed 
 ( 
 error 
 : 
  
 AckError 
 ) 
 : 
  
 void 
 ; 
 

Sets this message's exactly once delivery acks to permanent failure. This is meant for internal library use only.

Parameter
Name
Description
error
Returns
Type
Description
void

ackWithResponse()

  ackWithResponse 
 () 
 : 
  
 Promise<AckResponse> 
 ; 
 

Acknowledges the message, expecting a response (for exactly-once delivery subscriptions). If exactly-once delivery is not enabled, this will immediately resolve successfully.

Returns
Type
Description
Promise < AckResponse >
Example
  subscription 
 . 
 on 
 ( 
 'message' 
 , 
  
 async 
  
 ( 
 message 
 ) 
  
 = 
>  
 { 
  
 const 
  
 response 
  
 = 
  
 await 
  
 message 
 . 
 ackWithResponse 
 (); 
 }); 
 

endParentSpan()

  endParentSpan 
 () 
 : 
  
 void 
 ; 
 

Ends any open subscribe telemetry tracing span.

Returns
Type
Description
void

modAck(deadline)

  modAck 
 ( 
 deadline 
 : 
  
 number 
 ) 
 : 
  
 void 
 ; 
 

Modifies the ack deadline. At present time, this should generally not be called by users.

Parameter
Name
Description
deadline
number

The number of seconds to extend the deadline.

Returns
Type
Description
void

modAckWithResponse(deadline)

  modAckWithResponse 
 ( 
 deadline 
 : 
  
 number 
 ) 
 : 
  
 Promise<AckResponse> 
 ; 
 

Modifies the ack deadline, expecting a response (for exactly-once delivery subscriptions). If exactly-once delivery is not enabled, this will immediately resolve successfully. At present time, this should generally not be called by users.

Parameter
Name
Description
deadline
number

The number of seconds to extend the deadline.

Returns
Type
Description
Promise < AckResponse >

nack()

  nack 
 () 
 : 
  
 void 
 ; 
 

Removes the message from our inventory and schedules it to be redelivered.

Returns
Type
Description
void
Example
  subscription 
 . 
 on 
 ( 
 'message' 
 , 
  
 message 
  
 = 
>  
 { 
  
 message 
 . 
 nack 
 (); 
 }); 
 

nackWithResponse()

  nackWithResponse 
 () 
 : 
  
 Promise<AckResponse> 
 ; 
 

Removes the message from our inventory and schedules it to be redelivered, with the modAck response being returned (for exactly-once delivery subscriptions). If exactly-once delivery is not enabled, this will immediately resolve successfully.

Returns
Type
Description
Promise < AckResponse >
Example
  subscription 
 . 
 on 
 ( 
 'message' 
 , 
  
 async 
  
 ( 
 message 
 ) 
  
 = 
>  
 { 
  
 const 
  
 response 
  
 = 
  
 await 
  
 message 
 . 
 nackWithResponse 
 (); 
 }); 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: