@@ -44,7 +44,13 @@ func (c *Client) Connect() error {
44
44
}
45
45
46
46
c .connManager = connManager
47
- c .streamManager = NewStreamManager (c .connManager .JetStream (), c .logger )
47
+
48
+ js , err := c .connManager .JetStream ()
49
+ if err != nil {
50
+ return err
51
+ }
52
+
53
+ c .streamManager = NewStreamManager (js , c .logger )
48
54
c .subManager = NewSubscriptionManager (c .Config .BatchSize )
49
55
c .logSuccessfulConnection ()
50
56
@@ -95,7 +101,12 @@ func (c *Client) Publish(ctx context.Context, subject string, message []byte) er
95
101
96
102
// Subscribe subscribes to a topic and returns a single message.
97
103
func (c * Client ) Subscribe (ctx context.Context , topic string ) (* pubsub.Message , error ) {
98
- return c .subManager .Subscribe (ctx , topic , c .connManager .JetStream (), c .Config , c .logger , c .metrics )
104
+ js , err := c .connManager .JetStream ()
105
+ if err != nil {
106
+ return nil , err
107
+ }
108
+
109
+ return c .subManager .Subscribe (ctx , topic , js , c .Config , c .logger , c .metrics )
99
110
}
100
111
101
112
func (c * Client ) generateConsumerName (subject string ) string {
@@ -109,7 +120,11 @@ func (c *Client) SubscribeWithHandler(ctx context.Context, subject string, handl
109
120
// Cancel any existing subscription for this subject
110
121
c .cancelExistingSubscription (subject )
111
122
112
- js := c .connManager .JetStream ()
123
+ js , err := c .connManager .JetStream ()
124
+ if err != nil {
125
+ return err
126
+ }
127
+
113
128
consumerName := c .generateConsumerName (subject )
114
129
115
130
cons , err := c .createOrUpdateConsumer (ctx , js , subject , consumerName )
@@ -241,3 +256,13 @@ func (c *Client) DeleteStream(ctx context.Context, name string) error {
241
256
func (c * Client ) CreateOrUpdateStream (ctx context.Context , cfg * jetstream.StreamConfig ) (jetstream.Stream , error ) {
242
257
return c .streamManager .CreateOrUpdateStream (ctx , cfg )
243
258
}
259
+
260
+ // GetJetStreamStatus returns the status of the JetStream connection.
261
+ func GetJetStreamStatus (ctx context.Context , js jetstream.JetStream ) string {
262
+ _ , err := js .AccountInfo (ctx )
263
+ if err != nil {
264
+ return jetStreamStatusError + ": " + err .Error ()
265
+ }
266
+
267
+ return jetStreamStatusOK
268
+ }
0 commit comments