Skip to content

Commit f2cbf6b

Browse files
committed
Small bugfix to data channel transmissions.
1 parent 95798db commit f2cbf6b

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

webrtc-kmp/src/jsMain/kotlin/com/shepeliev/webrtckmp/DataChannel.kt

+7-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package com.shepeliev.webrtckmp
33
import kotlinx.coroutines.flow.Flow
44
import kotlinx.coroutines.flow.MutableSharedFlow
55
import kotlinx.coroutines.flow.asSharedFlow
6+
import org.khronos.webgl.ArrayBuffer
7+
import org.khronos.webgl.Int8Array
68

79
actual class DataChannel internal constructor(val js: RTCDataChannel) {
810
actual val id: Int
@@ -43,11 +45,14 @@ actual class DataChannel internal constructor(val js: RTCDataChannel) {
4345
js.onclosing = { _onClosing.tryEmit(Unit) }
4446
js.onclose = { _onClose.tryEmit(Unit) }
4547
js.onerror = { _onError.tryEmit(it.message) }
46-
js.onmessage = { _onMessage.tryEmit(it.data.encodeToByteArray()) }
48+
js.onmessage = {
49+
_onMessage.tryEmit(Int8Array(it.data).unsafeCast<ByteArray>())
50+
}
4751
}
4852

4953
actual fun send(data: ByteArray): Boolean {
50-
js.send(data.decodeToString())
54+
val conversion = data.unsafeCast<Int8Array>()
55+
js.send(conversion)
5156
return true
5257
}
5358

webrtc-kmp/src/jsMain/kotlin/com/shepeliev/webrtckmp/externals.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.shepeliev.webrtckmp
22

3+
import org.khronos.webgl.ArrayBuffer
34
import org.w3c.dom.mediacapture.MediaStream
45
import org.w3c.dom.mediacapture.MediaStreamTrack
56
import kotlin.js.Date
@@ -88,7 +89,7 @@ external class RTCDataChannel {
8889
}
8990

9091
external class MessageEvent {
91-
val data: String
92+
val data: ArrayBuffer
9293
}
9394

9495
external class ErrorEvent {

0 commit comments

Comments
 (0)