我正在使用 Uint8Arrays 和 ArrayBuffers 发送二进制数据。我可以通过每次创建一个新的 Uint8Array 和 ArrayBuffer 来成功发送它。
出于性能目的(减少垃圾等),我想为下一条消息重用相同的 Uint8Array 和 ArrayBuffer 。在这种情况下,每条消息都具有相同的字段,因此字节长度不是问题。我只是覆盖它。
但是,重用会导致发送的数据不正确。
我最好的猜测是,我正在为下一条消息修改 ArrayBuffer,而前一条消息仍在发送过程中。这是问题吗?如果是这样,有什么方法可以检测到 WebSocket 何时不再使用 ArrayBuffer 以便我可以将其汇集起来?如果不是,还有什么可能导致这种行为?
谢谢!