@stream-io/video-client 1.15.1 → 1.15.2

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [1.15.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.15.1...@stream-io/video-client-1.15.2) (2025-01-20)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * improved error handling when connecting to an SFU ([#1648](https://github.com/GetStream/stream-video-js/issues/1648)) ([27332b4](https://github.com/GetStream/stream-video-js/commit/27332b484094e26a123a1dfe8bb614c35ce1022a))
11
+
5
12
  ## [1.15.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.15.0...@stream-io/video-client-1.15.1) (2025-01-16)
6
13
 
7
14
 
@@ -6059,6 +6059,7 @@ class Subscriber extends BasePeerConnection {
6059
6059
  const createWebSocketSignalChannel = (opts) => {
6060
6060
  const { endpoint, onMessage, logTag } = opts;
6061
6061
  const logger = getLogger(['SfuClientWS', logTag]);
6062
+ logger('debug', 'Creating signaling WS channel:', endpoint);
6062
6063
  const ws = new WebSocket(endpoint);
6063
6064
  ws.binaryType = 'arraybuffer'; // do we need this?
6064
6065
  ws.addEventListener('error', (e) => {
@@ -6338,14 +6339,20 @@ class StreamSfuClient {
6338
6339
  this.dispatcher.dispatch(message, this.logTag);
6339
6340
  },
6340
6341
  });
6341
- this.signalWs.addEventListener('close', this.handleWebSocketClose);
6342
6342
  this.signalReady = makeSafePromise(Promise.race([
6343
- new Promise((resolve) => {
6343
+ new Promise((resolve, reject) => {
6344
6344
  const onOpen = () => {
6345
6345
  this.signalWs.removeEventListener('open', onOpen);
6346
6346
  resolve(this.signalWs);
6347
6347
  };
6348
6348
  this.signalWs.addEventListener('open', onOpen);
6349
+ this.signalWs.addEventListener('close', () => {
6350
+ this.handleWebSocketClose();
6351
+ // Normally, this shouldn't have any effect, because WS should never emit 'close'
6352
+ // before emitting 'open'. However, strager things have happened, and we don't
6353
+ // want to leave signalReady in pending state.
6354
+ reject(new Error('SFU WS closed unexpectedly'));
6355
+ });
6349
6356
  }),
6350
6357
  new Promise((resolve, reject) => {
6351
6358
  setTimeout(() => reject(new Error('SFU WS connection timed out')), this.joinResponseTimeout);
@@ -7346,7 +7353,7 @@ const aggregate = (stats) => {
7346
7353
  return report;
7347
7354
  };
7348
7355
 
7349
- const version = "1.15.1";
7356
+ const version = "1.15.2";
7350
7357
  const [major, minor, patch] = version.split('.');
7351
7358
  let sdkInfo = {
7352
7359
  type: SdkType.PLAIN_JAVASCRIPT,
@@ -12838,7 +12845,7 @@ class StreamClient {
12838
12845
  return await this.wsConnection.connect(this.defaultWSTimeout);
12839
12846
  };
12840
12847
  this.getUserAgent = () => {
12841
- const version = "1.15.1";
12848
+ const version = "1.15.2";
12842
12849
  return (this.userAgent ||
12843
12850
  `stream-video-javascript-client-${this.node ? 'node' : 'browser'}-${version}`);
12844
12851
  };