WebRTC: проблема с передачей данных

Я пытаюсь отправить ArrayBuffer, используя WebRTC и пакет simple-peer. И я получил эти проблемы:

  • Другой браузер получает несколько событий с Uint8Arrays, которые являются частью исходного ArrayBuffer. Длина каждого Uint8Array не превышает 262528. Это происходит, когда я отправляю большой ArrayBuffer из хрома в хром.
  • Я получаю ошибку TypeError: The expression cannot be converted to return the specified type. в браузере отправителя, когда отправляю большой массив ArrayBuffer из Firefox в Chrome.

Но все хорошо, когда:

  • Длина ArrayBuffer мала.
  • когда я отправляю данные из chrome в firefox.

Я использую функции peer.send(data) и peer.on('data', callback) из simple-peer, и код очень прост, поэтому я понятия не имею, что происходит не так.


person dodd0ro    schedule 09.03.2019    source источник
comment
У меня проблемы с тем, когда это работает, а когда нет. Можно перефразировать как вопрос? Вы указываете binaryType?   -  person jib    schedule 10.03.2019
comment
Я использую simple-peer, поэтому для меня указано binaryType. У меня есть причина проблемы, и я ответил ниже. Причина в ограничениях размера сообщений.   -  person dodd0ro    schedule 19.03.2019


Ответы (1)


Согласно ЭТОЙ статье, ограничение размера сообщения. Вывод таков:

В целом, вывод состоит в том, что размер сообщения 16 Кбайт обеспечивает максимальную пропускную способность, а также является наиболее переносимым. Кстати, в некоторых учебниках и литературе по WebRTC авторы рекомендуют использовать 16 Кбайт, но не объясняют, почему. Ну теперь ты знаешь.

person dodd0ro    schedule 19.03.2019