@spinajs/queue-stomp-transport 2.0.532 → 2.0.533

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,14 @@ import { IQueueMessage, IQueueConnectionOptions, QueueClient, QueueMessage } fro
2
2
  import Stomp from '@stomp/stompjs';
3
3
  import { Constructor } from '@spinajs/di';
4
4
  import { ResiliencePipeline } from '@spinajs/util';
5
+ /**
6
+ * Renders a websocket error for the log. The event stompjs hands to `onWebSocketError`
7
+ * comes straight from the socket implementation and can reference the underlying
8
+ * TLSSocket / HTTPParser ( a circular graph ), so it must NEVER be JSON.stringified.
9
+ * Prefer the real error ( `ws` wraps it in `ErrorEvent.error` ), then any message,
10
+ * then the event type.
11
+ */
12
+ export declare function describeWebSocketError(err: unknown): string;
5
13
  /**
6
14
  * Describes a subscription we want to keep alive across reconnects.
7
15
  *
@@ -51,6 +59,11 @@ export declare class StompQueueClient extends QueueClient {
51
59
  * ( e.g. with a fake ) in unit tests without a live broker.
52
60
  */
53
61
  protected createClient(config: Stomp.StompConfig): Stomp.Client;
62
+ /**
63
+ * Creates the raw websocket stompjs drives. One `ws` socket per ( re )connect attempt;
64
+ * stompjs sets `binaryType`, the on* handlers and closes it itself.
65
+ */
66
+ protected createWebSocket(): Stomp.IStompSocket;
54
67
  resolve(): Promise<void>;
55
68
  dispose(): Promise<void>;
56
69
  emit(message: IQueueMessage): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
@@ -13,16 +13,50 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.StompQueueClient = void 0;
16
+ exports.describeWebSocketError = describeWebSocketError;
16
17
  const exceptions_1 = require("@spinajs/exceptions");
17
18
  const queue_1 = require("@spinajs/queue");
18
19
  const stompjs_1 = __importDefault(require("@stomp/stompjs"));
19
20
  const lodash_1 = __importDefault(require("lodash"));
20
21
  const di_1 = require("@spinajs/di");
21
22
  const util_1 = require("@spinajs/util");
22
- const websocket_1 = __importDefault(require("websocket"));
23
+ const ws_1 = __importDefault(require("ws"));
23
24
  const crypto_1 = require("crypto");
24
25
  const luxon_1 = require("luxon");
25
- Object.assign(global, { WebSocket: websocket_1.default.w3cwebsocket });
26
+ /**
27
+ * Renders a websocket error for the log. The event stompjs hands to `onWebSocketError`
28
+ * comes straight from the socket implementation and can reference the underlying
29
+ * TLSSocket / HTTPParser ( a circular graph ), so it must NEVER be JSON.stringified.
30
+ * Prefer the real error ( `ws` wraps it in `ErrorEvent.error` ), then any message,
31
+ * then the event type.
32
+ */
33
+ function describeWebSocketError(err) {
34
+ if (!err) {
35
+ return 'unknown error';
36
+ }
37
+ const e = err;
38
+ const inner = e.error;
39
+ const message = inner?.message ?? e.message;
40
+ const code = inner?.code ?? e.code;
41
+ if (typeof message === 'string' && message.length > 0) {
42
+ // `ws` reports a socket that stompjs closed on `connectionTimeout` with this exact
43
+ // message - the TCP / TLS / HTTP upgrade never completed, which is almost always
44
+ // network ( security groups, routing, wrong port / scheme ) rather than the broker.
45
+ if (message.includes('closed before the connection was established')) {
46
+ return `${message} ( connection timeout - the websocket handshake never completed, check url / network path to the broker )`;
47
+ }
48
+ return code ? `${message} ( ${String(code)} )` : message;
49
+ }
50
+ if (typeof e.type === 'string') {
51
+ return `event '${e.type}'`;
52
+ }
53
+ try {
54
+ return String(err);
55
+ }
56
+ catch {
57
+ return 'unserializable error';
58
+ }
59
+ }
26
60
  /**
27
61
  * Default time to wait for a broker RECEIPT frame when publishing a message
28
62
  * before the emit is considered failed. Can be overridden via `Options.receiptTimeout`.
@@ -105,6 +139,16 @@ let StompQueueClient = class StompQueueClient extends queue_1.QueueClient {
105
139
  createClient(config) {
106
140
  return new stompjs_1.default.Client(config);
107
141
  }
142
+ /**
143
+ * Creates the raw websocket stompjs drives. One `ws` socket per ( re )connect attempt;
144
+ * stompjs sets `binaryType`, the on* handlers and closes it itself.
145
+ */
146
+ createWebSocket() {
147
+ if (!this.Options.host) {
148
+ throw new exceptions_1.InvalidArgument(`Queue connection ${this.Options.name} has no host configured`);
149
+ }
150
+ return new ws_1.default(this.Options.host, stompjs_1.default.Versions.default.protocolVersions());
151
+ }
108
152
  async resolve() {
109
153
  this.Log.info(`Connecting to STOMP queue at ${this.Options.host} with client-id: ${this.ClientId} ...`);
110
154
  this.Client = this.createClient({
@@ -118,11 +162,18 @@ let StompQueueClient = class StompQueueClient extends queue_1.QueueClient {
118
162
  heartbeatIncoming: this.Options.heartbeatIncoming ?? DEFAULT_HEARTBEAT_MS,
119
163
  heartbeatOutgoing: this.Options.heartbeatOutgoing ?? DEFAULT_HEARTBEAT_MS,
120
164
  connectionTimeout: this.Options.connectionTimeout ?? DEFAULT_CONNECTION_TIMEOUT_MS,
165
+ // `ws` instead of the `websocket` package's W3C shim: the shim swallows the
166
+ // connect-failure reason ( ECONNREFUSED / ETIMEDOUT / 401 / TLS ) and hands stompjs an
167
+ // event whose `target` walks into the TLSSocket, so nothing about WHY a connection
168
+ // failed ever reached the log. `ws` surfaces the real Error in `ErrorEvent.error`.
169
+ webSocketFactory: () => this.createWebSocket(),
121
170
  // additional options ( may override any of the defaults above )
122
171
  ...this.Options.options,
123
172
  });
173
+ // stompjs is chatty; keep it at trace unless the connection asks for debug output
174
+ const debugLevel = this.Options.debug ? 'debug' : 'trace';
124
175
  this.Client.debug = (str) => {
125
- this.Log.trace(`${str}, Client-id: ${this.ClientId}, name: ${this.Options.name}`);
176
+ this.Log[debugLevel](`${str}, Client-id: ${this.ClientId}, name: ${this.Options.name}`);
126
177
  };
127
178
  // if a credential provider is configured, refresh credentials right before
128
179
  // every ( re )connect - supports rotating secrets / token based auth
@@ -144,8 +195,12 @@ let StompQueueClient = class StompQueueClient extends queue_1.QueueClient {
144
195
  this.Client.onDisconnect = () => {
145
196
  this.Log.warn(`Disconnected from STOMP client, client-id: ${this.ClientId}`);
146
197
  };
147
- this.Client.onWebSocketClose = () => {
148
- this.Log.warn(`STOMP websocket closed, client-id: ${this.ClientId} ( will auto-reconnect if active )`);
198
+ this.Client.onWebSocketClose = (evt) => {
199
+ // 1000 = clean close, 1006 = abnormal ( connect failed / dropped without a close frame ),
200
+ // anything else usually comes from the broker with a reason
201
+ const code = evt?.code ?? 'unknown';
202
+ const reason = evt?.reason ? `, reason: ${evt.reason}` : '';
203
+ this.Log.warn(`STOMP websocket closed ( code: ${code}${reason} ), client-id: ${this.ClientId} ( will auto-reconnect if active )`);
149
204
  };
150
205
  return new Promise((resolve, reject) => {
151
206
  // ensures we settle the initial-connect promise exactly once, and that a
@@ -177,11 +232,21 @@ let StompQueueClient = class StompQueueClient extends queue_1.QueueClient {
177
232
  }
178
233
  };
179
234
  this.Client.onWebSocketError = (err) => {
180
- this.Log.error(`Websocket error: ${JSON.stringify(err)}, client-id: ${this.ClientId}`);
235
+ // Settle FIRST. This handler runs inside the socket's event dispatch - anything
236
+ // thrown here ( a bad log call, a serializer choking on the event ) becomes an
237
+ // uncaughtException and, worse, would leave the initial-connect promise pending
238
+ // forever, hanging whoever awaits resolve() ( QueueService boot ).
239
+ const reason = describeWebSocketError(err);
181
240
  if (!settled) {
182
241
  settled = true;
183
- this.Client.deactivate();
184
- reject(new exceptions_1.UnexpectedServerError(`Cannot connect to queue server at ${this.Options.host}, websocket error`, err));
242
+ void this.Client.deactivate();
243
+ reject(new exceptions_1.UnexpectedServerError(`Cannot connect to queue server at ${this.Options.host}, websocket error: ${reason}`, err));
244
+ }
245
+ try {
246
+ this.Log.error(`Websocket error: ${reason}, client-id: ${this.ClientId}`);
247
+ }
248
+ catch {
249
+ // logging must never take the connection down
185
250
  }
186
251
  };
187
252
  this.Client.activate();
@@ -402,9 +467,7 @@ let StompQueueClient = class StompQueueClient extends queue_1.QueueClient {
402
467
  buildEmitPipeline() {
403
468
  const attempts = this.Options.options?.emitRetries ?? 3;
404
469
  const base = this.Options.retryDelay && this.Options.retryDelay > 0 ? this.Options.retryDelay : 200;
405
- return new util_1.ResiliencePipelineBuilder()
406
- .addRetry({ MaxRetryAttempts: attempts, Delay: base, MaxDelay: 30000, BackoffType: util_1.BackoffType.Exponential, UseJitter: true })
407
- .build();
470
+ return new util_1.ResiliencePipelineBuilder().addRetry({ MaxRetryAttempts: attempts, Delay: base, MaxDelay: 30000, BackoffType: util_1.BackoffType.Exponential, UseJitter: true }).build();
408
471
  }
409
472
  /**
410
473
  * Publishes a message to all of its routed channels and resolves only once the
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,14 @@ import { IQueueMessage, IQueueConnectionOptions, QueueClient, QueueMessage } fro
2
2
  import Stomp from '@stomp/stompjs';
3
3
  import { Constructor } from '@spinajs/di';
4
4
  import { ResiliencePipeline } from '@spinajs/util';
5
+ /**
6
+ * Renders a websocket error for the log. The event stompjs hands to `onWebSocketError`
7
+ * comes straight from the socket implementation and can reference the underlying
8
+ * TLSSocket / HTTPParser ( a circular graph ), so it must NEVER be JSON.stringified.
9
+ * Prefer the real error ( `ws` wraps it in `ErrorEvent.error` ), then any message,
10
+ * then the event type.
11
+ */
12
+ export declare function describeWebSocketError(err: unknown): string;
5
13
  /**
6
14
  * Describes a subscription we want to keep alive across reconnects.
7
15
  *
@@ -51,6 +59,11 @@ export declare class StompQueueClient extends QueueClient {
51
59
  * ( e.g. with a fake ) in unit tests without a live broker.
52
60
  */
53
61
  protected createClient(config: Stomp.StompConfig): Stomp.Client;
62
+ /**
63
+ * Creates the raw websocket stompjs drives. One `ws` socket per ( re )connect attempt;
64
+ * stompjs sets `binaryType`, the on* handlers and closes it itself.
65
+ */
66
+ protected createWebSocket(): Stomp.IStompSocket;
54
67
  resolve(): Promise<void>;
55
68
  dispose(): Promise<void>;
56
69
  emit(message: IQueueMessage): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,43 @@ import Stomp from '@stomp/stompjs';
13
13
  import _ from 'lodash';
14
14
  import { DI, Injectable, PerInstanceCheck } from '@spinajs/di';
15
15
  import { BackoffType, ResiliencePipelineBuilder } from '@spinajs/util';
16
- import websocket from 'websocket';
16
+ import WebSocket from 'ws';
17
17
  import { randomUUID } from 'crypto';
18
18
  import { DateTime } from 'luxon';
19
- Object.assign(global, { WebSocket: websocket.w3cwebsocket });
19
+ /**
20
+ * Renders a websocket error for the log. The event stompjs hands to `onWebSocketError`
21
+ * comes straight from the socket implementation and can reference the underlying
22
+ * TLSSocket / HTTPParser ( a circular graph ), so it must NEVER be JSON.stringified.
23
+ * Prefer the real error ( `ws` wraps it in `ErrorEvent.error` ), then any message,
24
+ * then the event type.
25
+ */
26
+ export function describeWebSocketError(err) {
27
+ if (!err) {
28
+ return 'unknown error';
29
+ }
30
+ const e = err;
31
+ const inner = e.error;
32
+ const message = inner?.message ?? e.message;
33
+ const code = inner?.code ?? e.code;
34
+ if (typeof message === 'string' && message.length > 0) {
35
+ // `ws` reports a socket that stompjs closed on `connectionTimeout` with this exact
36
+ // message - the TCP / TLS / HTTP upgrade never completed, which is almost always
37
+ // network ( security groups, routing, wrong port / scheme ) rather than the broker.
38
+ if (message.includes('closed before the connection was established')) {
39
+ return `${message} ( connection timeout - the websocket handshake never completed, check url / network path to the broker )`;
40
+ }
41
+ return code ? `${message} ( ${String(code)} )` : message;
42
+ }
43
+ if (typeof e.type === 'string') {
44
+ return `event '${e.type}'`;
45
+ }
46
+ try {
47
+ return String(err);
48
+ }
49
+ catch {
50
+ return 'unserializable error';
51
+ }
52
+ }
20
53
  /**
21
54
  * Default time to wait for a broker RECEIPT frame when publishing a message
22
55
  * before the emit is considered failed. Can be overridden via `Options.receiptTimeout`.
@@ -99,6 +132,16 @@ let StompQueueClient = class StompQueueClient extends QueueClient {
99
132
  createClient(config) {
100
133
  return new Stomp.Client(config);
101
134
  }
135
+ /**
136
+ * Creates the raw websocket stompjs drives. One `ws` socket per ( re )connect attempt;
137
+ * stompjs sets `binaryType`, the on* handlers and closes it itself.
138
+ */
139
+ createWebSocket() {
140
+ if (!this.Options.host) {
141
+ throw new InvalidArgument(`Queue connection ${this.Options.name} has no host configured`);
142
+ }
143
+ return new WebSocket(this.Options.host, Stomp.Versions.default.protocolVersions());
144
+ }
102
145
  async resolve() {
103
146
  this.Log.info(`Connecting to STOMP queue at ${this.Options.host} with client-id: ${this.ClientId} ...`);
104
147
  this.Client = this.createClient({
@@ -112,11 +155,18 @@ let StompQueueClient = class StompQueueClient extends QueueClient {
112
155
  heartbeatIncoming: this.Options.heartbeatIncoming ?? DEFAULT_HEARTBEAT_MS,
113
156
  heartbeatOutgoing: this.Options.heartbeatOutgoing ?? DEFAULT_HEARTBEAT_MS,
114
157
  connectionTimeout: this.Options.connectionTimeout ?? DEFAULT_CONNECTION_TIMEOUT_MS,
158
+ // `ws` instead of the `websocket` package's W3C shim: the shim swallows the
159
+ // connect-failure reason ( ECONNREFUSED / ETIMEDOUT / 401 / TLS ) and hands stompjs an
160
+ // event whose `target` walks into the TLSSocket, so nothing about WHY a connection
161
+ // failed ever reached the log. `ws` surfaces the real Error in `ErrorEvent.error`.
162
+ webSocketFactory: () => this.createWebSocket(),
115
163
  // additional options ( may override any of the defaults above )
116
164
  ...this.Options.options,
117
165
  });
166
+ // stompjs is chatty; keep it at trace unless the connection asks for debug output
167
+ const debugLevel = this.Options.debug ? 'debug' : 'trace';
118
168
  this.Client.debug = (str) => {
119
- this.Log.trace(`${str}, Client-id: ${this.ClientId}, name: ${this.Options.name}`);
169
+ this.Log[debugLevel](`${str}, Client-id: ${this.ClientId}, name: ${this.Options.name}`);
120
170
  };
121
171
  // if a credential provider is configured, refresh credentials right before
122
172
  // every ( re )connect - supports rotating secrets / token based auth
@@ -138,8 +188,12 @@ let StompQueueClient = class StompQueueClient extends QueueClient {
138
188
  this.Client.onDisconnect = () => {
139
189
  this.Log.warn(`Disconnected from STOMP client, client-id: ${this.ClientId}`);
140
190
  };
141
- this.Client.onWebSocketClose = () => {
142
- this.Log.warn(`STOMP websocket closed, client-id: ${this.ClientId} ( will auto-reconnect if active )`);
191
+ this.Client.onWebSocketClose = (evt) => {
192
+ // 1000 = clean close, 1006 = abnormal ( connect failed / dropped without a close frame ),
193
+ // anything else usually comes from the broker with a reason
194
+ const code = evt?.code ?? 'unknown';
195
+ const reason = evt?.reason ? `, reason: ${evt.reason}` : '';
196
+ this.Log.warn(`STOMP websocket closed ( code: ${code}${reason} ), client-id: ${this.ClientId} ( will auto-reconnect if active )`);
143
197
  };
144
198
  return new Promise((resolve, reject) => {
145
199
  // ensures we settle the initial-connect promise exactly once, and that a
@@ -171,11 +225,21 @@ let StompQueueClient = class StompQueueClient extends QueueClient {
171
225
  }
172
226
  };
173
227
  this.Client.onWebSocketError = (err) => {
174
- this.Log.error(`Websocket error: ${JSON.stringify(err)}, client-id: ${this.ClientId}`);
228
+ // Settle FIRST. This handler runs inside the socket's event dispatch - anything
229
+ // thrown here ( a bad log call, a serializer choking on the event ) becomes an
230
+ // uncaughtException and, worse, would leave the initial-connect promise pending
231
+ // forever, hanging whoever awaits resolve() ( QueueService boot ).
232
+ const reason = describeWebSocketError(err);
175
233
  if (!settled) {
176
234
  settled = true;
177
- this.Client.deactivate();
178
- reject(new UnexpectedServerError(`Cannot connect to queue server at ${this.Options.host}, websocket error`, err));
235
+ void this.Client.deactivate();
236
+ reject(new UnexpectedServerError(`Cannot connect to queue server at ${this.Options.host}, websocket error: ${reason}`, err));
237
+ }
238
+ try {
239
+ this.Log.error(`Websocket error: ${reason}, client-id: ${this.ClientId}`);
240
+ }
241
+ catch {
242
+ // logging must never take the connection down
179
243
  }
180
244
  };
181
245
  this.Client.activate();
@@ -396,9 +460,7 @@ let StompQueueClient = class StompQueueClient extends QueueClient {
396
460
  buildEmitPipeline() {
397
461
  const attempts = this.Options.options?.emitRetries ?? 3;
398
462
  const base = this.Options.retryDelay && this.Options.retryDelay > 0 ? this.Options.retryDelay : 200;
399
- return new ResiliencePipelineBuilder()
400
- .addRetry({ MaxRetryAttempts: attempts, Delay: base, MaxDelay: 30000, BackoffType: BackoffType.Exponential, UseJitter: true })
401
- .build();
463
+ return new ResiliencePipelineBuilder().addRetry({ MaxRetryAttempts: attempts, Delay: base, MaxDelay: 30000, BackoffType: BackoffType.Exponential, UseJitter: true }).build();
402
464
  }
403
465
  /**
404
466
  * Publishes a message to all of its routed channels and resolves only once the
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}