@@ -107,6 +107,7 @@ import { hashDirectory, streamDirectory, streamFiles } from './utils/chunk-strea
107107import { assertCollection , makeCollectionFromFileList } from './utils/collection'
108108import { makeCollectionFromFS } from './utils/collection.node'
109109import { prepareWebsocketData } from './utils/data'
110+ import { prepareWebsocketData as prepareWebsocketDataBrowser } from './utils/data.browser'
110111import { Duration } from './utils/duration'
111112import { BeeArgumentError , BeeError } from './utils/error'
112113import { fileArrayBuffer , isFile } from './utils/file'
@@ -1319,6 +1320,9 @@ export class Bee {
13191320 modeInstance . getPublisherHeaders ( ) ?? undefined ,
13201321 this . requestOptions . headers ,
13211322 )
1323+ // Ensure binary frames are delivered as ArrayBuffer (not Blob) in browser environments.
1324+ // prepareWebsocketData handles ArrayBuffer but not Blob.
1325+ ws . binaryType = 'arraybuffer'
13221326
13231327 const PING_INTERVAL_MS = 50_000
13241328 let pingTimer : ReturnType < typeof setInterval > | null = null
@@ -1390,8 +1394,8 @@ export class Bee {
13901394 }
13911395 }
13921396
1393- ws . onmessage = event => {
1394- const data = prepareWebsocketData ( event . data )
1397+ ws . onmessage = async event => {
1398+ const data = await prepareWebsocketDataBrowser ( event . data )
13951399
13961400 if ( data . length ) {
13971401 handler . onMessage ( modeInstance . decodeMessage ( data ) , subscription )
0 commit comments