Uint8Arrays と ArrayBuffers を使用してバイナリ データを送信しています。毎回新しい Uint8Array と ArrayBuffer を作成することで、正常に送信できます。
パフォーマンス上の目的 (ガベージの削減など) のために、次のメッセージに同じ Uint8Array と ArrayBuffer を再利用したいと考えています。この場合、各メッセージには同じフィールドがあるため、バイト長は問題になりません。上書きするだけです。
ただし、再利用すると、送信されるデータが正しくなくなります。
私の最善の推測は、前のメッセージがまだ送信中である間に、次のメッセージの ArrayBuffer を変更していることです。これが問題ですか?もしそうなら、ArrayBuffer が WebSocket で使用されなくなったことを検出してプールできる方法はありますか? そうでない場合、他に何がこの動作を引き起こす可能性がありますか?
ありがとう!