From a5011a266f2d66ae413f328058a3cb8fcf738f14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Fri, 8 Dec 2023 09:59:38 +0100 Subject: [PATCH] Update conversion --- lib/html.dart | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/html.dart b/lib/html.dart index 0dc047c..166dfc0 100644 --- a/lib/html.dart +++ b/lib/html.dart @@ -127,9 +127,17 @@ class HtmlWebSocketChannel extends StreamChannelMixin } void _innerListen(MessageEvent event) { - var data = event.data.dartify(); - if (data is ByteBuffer) { - data = data.asUint8List(); + // Event data will be ArrayBuffer, Blob, or String. + final eventData = event.data; + final Object? data; + if (eventData.typeofEquals('string')) { + data = (eventData as JSString).toDart; + } else if (eventData.typeofEquals('object') && + (eventData as JSObject).instanceOfString('ArrayBuffer')) { + data = (eventData as JSArrayBuffer).toDart; + } else { + // Blobs are passed directly. + data = eventData; } _controller.local.sink.add(data); }