When a message has been delivered by JetStream, it will be possible to access some of its metadata such as sequence numbers.
()
| 663 | // When a message has been delivered by JetStream, it will be possible |
| 664 | // to access some of its metadata such as sequence numbers. |
| 665 | func ExampleMsg_Metadata() { |
| 666 | nc, _ := nats.Connect("localhost") |
| 667 | js, _ := nc.JetStream() |
| 668 | |
| 669 | // Set custom timeout for a JetStream API request. |
| 670 | js.AddStream(&nats.StreamConfig{ |
| 671 | Name: "FOO", |
| 672 | Subjects: []string{"foo"}, |
| 673 | }) |
| 674 | |
| 675 | js.Publish("foo", []byte("hello")) |
| 676 | |
| 677 | sub, _ := js.SubscribeSync("foo") |
| 678 | msg, _ := sub.NextMsg(2 * time.Second) |
| 679 | |
| 680 | // |
| 681 | meta, _ := msg.Metadata() |
| 682 | |
| 683 | // Stream and Consumer sequences. |
| 684 | fmt.Printf("Stream seq: %s:%d, Consumer seq: %s:%d\n", meta.Stream, meta.Sequence.Stream, meta.Consumer, meta.Sequence.Consumer) |
| 685 | fmt.Printf("Pending: %d\n", meta.NumPending) |
| 686 | fmt.Printf("Pending: %d\n", meta.NumDelivered) |
| 687 | } |
| 688 | |
| 689 | // AckOpt are the options that can be passed when acknowledge a message. |
| 690 | func ExampleAckOpt() { |