Я отправляю двоичные данные, используя Uint8Arrays и ArrayBuffers. Я могу успешно отправить его, каждый раз создавая новый Uint8Array и ArrayBuffer.
В целях повышения производительности (уменьшение количества мусора и т. д.) я хотел бы повторно использовать те же Uint8Array и ArrayBuffer для следующего сообщения. В этом случае каждое сообщение имеет одинаковые поля, поэтому длина в байтах не является проблемой. Я просто перезаписываю это.
Однако повторное использование приводит к тому, что отправляемые данные оказываются неверными.
Мое лучшее предположение состоит в том, что я изменяю ArrayBuffer для следующего сообщения, в то время как предыдущее сообщение все еще находится в процессе отправки. Это проблема? Если да, то есть ли способ определить, когда ArrayBuffer больше не используется WebSocket, чтобы я мог объединить его? Если нет, что еще может вызвать такое поведение?
Спасибо!