JetStream returns a JetStreamContext for messaging and stream management. Errors are only returned if inconsistent options are provided. NOTE: JetStreamContext is part of legacy API. Users are encouraged to switch to the new JetStream API for enhanced capabilities and simplified API. Please refer t
(opts ...JSOpt)
| 307 | // simplified API. Please refer to the `jetstream` package. |
| 308 | // See: https://github.com/nats-io/nats.go/blob/main/jetstream/README.md |
| 309 | func (nc *Conn) JetStream(opts ...JSOpt) (JetStreamContext, error) { |
| 310 | js := &js{ |
| 311 | nc: nc, |
| 312 | opts: &jsOpts{ |
| 313 | pre: defaultAPIPrefix, |
| 314 | wait: defaultRequestWait, |
| 315 | maxpa: defaultAsyncPubAckInflight, |
| 316 | }, |
| 317 | } |
| 318 | inboxPrefix := InboxPrefix |
| 319 | if js.nc.Opts.InboxPrefix != _EMPTY_ { |
| 320 | inboxPrefix = js.nc.Opts.InboxPrefix + "." |
| 321 | } |
| 322 | js.replyPrefix = inboxPrefix |
| 323 | js.replyPrefixLen = len(js.replyPrefix) + aReplyTokensize + 1 |
| 324 | |
| 325 | for _, opt := range opts { |
| 326 | if err := opt.configureJSContext(js.opts); err != nil { |
| 327 | return nil, err |
| 328 | } |
| 329 | } |
| 330 | return js, nil |
| 331 | } |
| 332 | |
| 333 | // JSOpt configures a JetStreamContext. |
| 334 | type JSOpt interface { |