mirror of
https://github.com/vector-im/element-call.git
synced 2026-08-29 21:15:19 +00:00
Use rtc transport action with widgets
This commit is contained in:
@@ -95,7 +95,7 @@
|
|||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"loglevel": "^1.9.1",
|
"loglevel": "^1.9.1",
|
||||||
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
|
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
|
||||||
"matrix-widget-api": "^1.16.1",
|
"matrix-widget-api": "^1.18.0",
|
||||||
"node-stdlib-browser": "^1.3.1",
|
"node-stdlib-browser": "^1.3.1",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"observable-hooks": "^4.2.3",
|
"observable-hooks": "^4.2.3",
|
||||||
|
|||||||
12
pnpm-lock.yaml
generated
12
pnpm-lock.yaml
generated
@@ -188,8 +188,8 @@ importers:
|
|||||||
specifier: github:matrix-org/matrix-js-sdk#develop
|
specifier: github:matrix-org/matrix-js-sdk#develop
|
||||||
version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8c95727b6278fe7942c20d0b9485f984dd0694b7
|
version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8c95727b6278fe7942c20d0b9485f984dd0694b7
|
||||||
matrix-widget-api:
|
matrix-widget-api:
|
||||||
specifier: ^1.16.1
|
specifier: ^1.18.0
|
||||||
version: 1.17.0
|
version: 1.18.0
|
||||||
node-stdlib-browser:
|
node-stdlib-browser:
|
||||||
specifier: ^1.3.1
|
specifier: ^1.3.1
|
||||||
version: 1.3.1
|
version: 1.3.1
|
||||||
@@ -4864,6 +4864,9 @@ packages:
|
|||||||
matrix-widget-api@1.17.0:
|
matrix-widget-api@1.17.0:
|
||||||
resolution: {integrity: sha512-5FHoo3iEP3Bdlv5jsYPWOqj+pGdFQNLWnJLiB0V7Ygne7bb+Gsj3ibyFyHWC6BVw+Z+tSW4ljHpO17I9TwStwQ==}
|
resolution: {integrity: sha512-5FHoo3iEP3Bdlv5jsYPWOqj+pGdFQNLWnJLiB0V7Ygne7bb+Gsj3ibyFyHWC6BVw+Z+tSW4ljHpO17I9TwStwQ==}
|
||||||
|
|
||||||
|
matrix-widget-api@1.18.0:
|
||||||
|
resolution: {integrity: sha512-4T2f2koWmx05p1BLcT/9YGGGPSXpPT+PA4Oap/5fjhXsWPxMGJiGL97YpANMYLKsnE1sScYFeuyxIgdc1Qo+Ew==}
|
||||||
|
|
||||||
md5.js@1.3.5:
|
md5.js@1.3.5:
|
||||||
resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==}
|
resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==}
|
||||||
|
|
||||||
@@ -10609,6 +10612,11 @@ snapshots:
|
|||||||
'@types/events': 3.0.3
|
'@types/events': 3.0.3
|
||||||
events: 3.3.0
|
events: 3.3.0
|
||||||
|
|
||||||
|
matrix-widget-api@1.18.0:
|
||||||
|
dependencies:
|
||||||
|
'@types/events': 3.0.3
|
||||||
|
events: 3.3.0
|
||||||
|
|
||||||
md5.js@1.3.5:
|
md5.js@1.3.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
hash-base: 3.0.5
|
hash-base: 3.0.5
|
||||||
|
|||||||
@@ -90,34 +90,23 @@ export class RtcTransportAutoDiscovery {
|
|||||||
private async tryBackendTransports(): Promise<LivekitTransportConfig | null> {
|
private async tryBackendTransports(): Promise<LivekitTransportConfig | null> {
|
||||||
const client = this.client;
|
const client = this.client;
|
||||||
// MSC4143: Attempt to fetch transports from backend.
|
// MSC4143: Attempt to fetch transports from backend.
|
||||||
// TODO: Workaround for an issue in the js-sdk RoomWidgetClient that
|
this.logger.info("First try to use getRTCTransports end point ...");
|
||||||
// is not yet implementing _unstable_getRTCTransports properly (via widget API new action).
|
try {
|
||||||
// For now we just skip this call if we are in a widget.
|
const transportList = await doNetworkOperationWithRetry(async () =>
|
||||||
// In widget mode the client is a `RoomWidgetClient` which has no access token (it is using the widget API).
|
client._unstable_getRTCTransports()
|
||||||
// Could be removed once the js-sdk is fixed (https://github.com/matrix-org/matrix-js-sdk/issues/5245)
|
);
|
||||||
const isSPA = !!client.getAccessToken();
|
const first = transportList.find(isLivekitTransportConfig);
|
||||||
if (isSPA && "_unstable_getRTCTransports" in client) {
|
if (first) {
|
||||||
this.logger.info("First try to use getRTCTransports end point ...");
|
return first;
|
||||||
try {
|
} else {
|
||||||
const transportList = await doNetworkOperationWithRetry(async () =>
|
this.logger.info(
|
||||||
client._unstable_getRTCTransports(),
|
`No livekit transport found in getRTCTransports end point`,
|
||||||
|
transportList
|
||||||
);
|
);
|
||||||
const first = transportList.find(isLivekitTransportConfig);
|
|
||||||
if (first) {
|
|
||||||
return first;
|
|
||||||
} else {
|
|
||||||
this.logger.info(
|
|
||||||
`No livekit transport found in getRTCTransports end point`,
|
|
||||||
transportList,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} catch (ex) {
|
|
||||||
this.logger.info(`Failed to use getRTCTransports end point: ${ex}`);
|
|
||||||
}
|
}
|
||||||
} else {
|
} catch (ex) {
|
||||||
this.logger.debug(`getRTCTransports end point not available`);
|
this.logger.info(`Failed to use getRTCTransports end point: ${ex}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user