Firefox не понимает, что переменная содержит ArrayBuffer, в то время как Chrome делает - PullRequest
0 голосов
/ 15 ноября 2018

У меня проблемы с тем, чтобы Firefox читал большой двоичный объект, или, скорее, я понимаю, что переменная содержит ArrayBuffer.

Я экспериментирую с WebRTC в машинописи.

// Create a data Channel for communication
this.gameChannel = this.RtcConnection.createDataChannel('g', gameDataChannelOptions);
// Start listener
this.gameChannel.onmessage = function (event: any) {
    console.log(event);
}

Приведенный выше код работает вChrome, но не в Firefox, или, скорее, Firefox не может прочитать результирующие данные (или, скорее всего, я делаю что-то не так).

Ниже приведена консоль в Chrome и FF, обратите внимание, что в Chrome я вижуожидаемые данные, в то время как в FF я просто получаю блоб ожидаемой длины, но я не могу получить к нему доступ.

Как получить одинаковый результат в обоих браузерах?

enter image description here

1 Ответ

0 голосов
/ 16 ноября 2018

Установите this.gameChannel.binaryType = "arraybuffer", чтобы он работал.

Firefox верен, потому что "blob" - это двоичный тип по умолчанию.Ошибка пилот-сигнала.

Chrome еще не реализует "blob", поэтому, вероятно, по умолчанию используется буфер массива.Если я установлю "blob" в Chrome, я получу:

Failed to set the 'binaryType' property on 'RTCDataChannel':
Blob support not implemented yet

К сожалению, это вызывает проблемы с веб-совместимостью, как показывает ваш вопрос.

...