Skip to content

Latest commit

 

History

History
74 lines (61 loc) · 2.5 KB

get-topic-message.md

File metadata and controls

74 lines (61 loc) · 2.5 KB

Get topic messages

Subscribe to a topic ID's messages from a mirror node. You will receive all messages for the specified topic or within the defined start and end time.

Query Fees

  • Please see the transaction and query fees table for the base transaction fee
  • Please use the Hedera fee estimator to estimate your query fee cost
Constructor Description
new TopicMessageQuery() Initializes the TopicMessageQuery object
new TopicMessageQuery()

Methods

Method Type Description Requirement
setTopicId(<topicId>) TopicId The topic ID to subscribe to Required
setStartTime(<startTime>) Instant The time to start subscribing to a topic's messages Optional
setEndTime(<endTime>) Instant The time to stop subscribing to a topic's messages Optional
setLimit(<limit>) long The number of messages to return Optional
subscribe(<client, onNext) SubscriptionHandle Client, Consumer<TopicMessage> Required

{% tabs %} {% tab title="Java" %}

//Create the query
new TopicMessageQuery()
    .setTopicId(newTopicId)
    .subscribe(client, topicMessage -> {
        System.out.println("at " + topicMessage.consensusTimestamp + " ( seq = " + topicMessage.sequenceNumber + " ) received topic message of " + topicMessage.contents.length + " bytes");
    });

//v2.0.0

{% endtab %}

{% tab title="JavaScript" %}

//Create the query
new TopicMessageQuery()
        .setTopicId(topicId)
        .setStartTime(0)
        .subscribe(
            client,
            (message) => console.log(Buffer.from(message.contents, "utf8").toString())
        );
//v2.0.0

{% endtab %}

{% tab title="Go" %}

//Create the query
_, err = hedera.NewTopicMessageQuery().
    SetTopicID(topicID).
    Subscribe(client, func(message hedera.TopicMessage) {
        if string(message.Contents) == content {
        wait = false
    }
})

if err != nil {
    panic(err)
}

//v2.0.0

{% endtab %} {% endtabs %}