mirror of
https://github.com/taigrr/nats.docs
synced 2025-01-18 04:03:23 -08:00
46 lines
1.1 KiB
Markdown
46 lines
1.1 KiB
Markdown
# Receiving Messages from a Channel
|
|
|
|
Clients subscribe to channels by name. Wildcards are not supported. Receiving messages is similar to core NATS. Messages in streaming use protocol buffers and will have a bit more structure than NATS opaque messages. Client messages are still presented and accepted as raw/opaque binary data. The use of protocol buffers is transparent.
|
|
|
|
Subscriptions come in several forms:
|
|
|
|
* Regular
|
|
* Durable
|
|
* Queue
|
|
* Queue/Durable
|
|
|
|
Subscriptions set their starting position on creation using position or time. For example, in Go you can start at:
|
|
|
|
* The last message received
|
|
|
|
```go
|
|
sub, err := sc.Subscribe("foo",
|
|
func(m *stan.Msg) {...},
|
|
stan.StartWithLastReceived())
|
|
```
|
|
|
|
* The beginning of the channel
|
|
|
|
```go
|
|
sub, err := sc.Subscribe("foo",
|
|
func(m *stan.Msg) {...},
|
|
stan.DeliverAllAvailable())
|
|
```
|
|
|
|
* A specific message, indexing starts at 1
|
|
|
|
```go
|
|
sub, err := sc.Subscribe("foo",
|
|
func(m *stan.Msg) {...},
|
|
stan.StartAtSequence(22))
|
|
```
|
|
|
|
* A specific time the message arrived in the channel
|
|
|
|
```go
|
|
var startTime time.Time
|
|
...
|
|
sub, err := sc.Subscribe("foo",
|
|
func(m *stan.Msg) {...},
|
|
stan.StartAtTime(startTime))
|
|
``` |