diff --git a/src/Transport.ts b/src/Transport.ts index 02dba8b4..612d68fc 100644 --- a/src/Transport.ts +++ b/src/Transport.ts @@ -875,6 +875,10 @@ export class Transport< }, 'transport.consumeData()'); } + getDataChannelMaxMessageSize(): number | undefined { + return this._handler.getDataChannelMaxMessageSize(); + } + // This method is guaranteed to never throw. private createPendingConsumers(): void { this._consumerCreationInProgress = true; diff --git a/src/handlers/Chrome111.ts b/src/handlers/Chrome111.ts index 221e701e..8e3e23b9 100644 --- a/src/handlers/Chrome111.ts +++ b/src/handlers/Chrome111.ts @@ -1240,6 +1240,10 @@ export class Chrome111 return { dataChannel }; } + getDataChannelMaxMessageSize(): number | undefined { + return this._pc.sctp?.maxMessageSize; + } + private async setupTransport({ localDtlsRole, localSdpObject, diff --git a/src/handlers/Chrome74.ts b/src/handlers/Chrome74.ts index e02815a8..271f57b8 100644 --- a/src/handlers/Chrome74.ts +++ b/src/handlers/Chrome74.ts @@ -1246,6 +1246,10 @@ export class Chrome74 return { dataChannel }; } + getDataChannelMaxMessageSize(): number | undefined { + return this._pc.sctp?.maxMessageSize; + } + private async setupTransport({ localDtlsRole, localSdpObject, diff --git a/src/handlers/FakeHandler.ts b/src/handlers/FakeHandler.ts index 72a2cc84..5f08072b 100644 --- a/src/handlers/FakeHandler.ts +++ b/src/handlers/FakeHandler.ts @@ -453,6 +453,10 @@ export class FakeHandler return { dataChannel }; } + getDataChannelMaxMessageSize(): number | undefined { + return 500000; + } + private async setupTransport({ localDtlsRole, // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/src/handlers/Firefox120.ts b/src/handlers/Firefox120.ts index 4cc8f3f3..bcf3ae4c 100644 --- a/src/handlers/Firefox120.ts +++ b/src/handlers/Firefox120.ts @@ -1201,6 +1201,10 @@ export class Firefox120 return { dataChannel }; } + getDataChannelMaxMessageSize(): number | undefined { + return this._pc.sctp?.maxMessageSize; + } + private async setupTransport({ localDtlsRole, localSdpObject, diff --git a/src/handlers/HandlerInterface.ts b/src/handlers/HandlerInterface.ts index e0e9db2d..94dc09d4 100644 --- a/src/handlers/HandlerInterface.ts +++ b/src/handlers/HandlerInterface.ts @@ -186,4 +186,6 @@ export abstract class HandlerInterface extends EnhancedEventEmitter; + + abstract getDataChannelMaxMessageSize(): number | undefined; } diff --git a/src/handlers/ReactNative106.ts b/src/handlers/ReactNative106.ts index 32b30d25..b6fa7972 100644 --- a/src/handlers/ReactNative106.ts +++ b/src/handlers/ReactNative106.ts @@ -1297,6 +1297,10 @@ export class ReactNative106 return { dataChannel }; } + getDataChannelMaxMessageSize(): number | undefined { + return this._pc.sctp?.maxMessageSize; + } + private async setupTransport({ localDtlsRole, localSdpObject, diff --git a/src/handlers/Safari12.ts b/src/handlers/Safari12.ts index 5beb6f1f..470c8868 100644 --- a/src/handlers/Safari12.ts +++ b/src/handlers/Safari12.ts @@ -1249,6 +1249,10 @@ export class Safari12 return { dataChannel }; } + getDataChannelMaxMessageSize(): number | undefined { + return this._pc.sctp?.maxMessageSize; + } + private async setupTransport({ localDtlsRole, localSdpObject,