Вы можете отправить DataView через WebRTC DataChannel. Источник: https://groups.google.com/forum/#!topic/discuss-webrtc/JlU2ItCJuZUWebRTC и DataView. Как отправить динамическое количество байтов?
Это замечательно, потому что с этого момента не обязательно отправлять весь массив ArrayBuffer. Но .. Вы не можете динамически изменять byteLength DataView (и для меня это большой сюрприз, потому что DataView похож на указатель на ArrayBuffer с помощью только специализированного API).
Таким образом, вы не можете отправлять длину байтов без создания нового DataView каждый раз. (ужасная идея из-за GC).
Любые идеи о том, как отправлять любую длину байтов через WebRTC, без создания нового DataView каждый раз?
Дело в том, что речь идет о быстро развивающейся многопользовательской игре, где мир имеет несколько объектов и количество этих объектов можно динамически изменять в процессе игры. Хост отправляет моментальный снимок объектов каждые 50 или 100 мс, и каждый снимок может содержать 10, 58, 128, 500 или более или менее объектных данных для отправки, поэтому иногда ему потребуется 2000 байт, а иногда и 100, поэтому ему нужен гибкий способ , – ElSajko
Хорошо, если производительность действительно такая проблема, тогда единственное, что приходит мне на ум, - предварительно выделить все возможные размеры сообщений, которые могут быть отправлены (100, 200, 2000), если размеры сообщений известны заранее. Однако, как я уже сказал, создание и сбор мусора DataView не является серьезной проблемой. Но все же теперь есть способ изменить длину DataView после его создания. –