奇妙な動作をする Websocket があります。非常に単純な文字列のような簡単なものを送信すると、websocket は期待どおりに機能し、受信者は文字列を受信します。ただし、現在、より複雑なデータ型を送信しようとしています。正確には、canvas.get()[0].toDataURL('image/png')
(データ URI スキームである必要があります) の結果を送信しています。どうやら、websocket はデータ型が気に入らないようです。これをラップしても、websocket のreadyState
属性が(接続済み1
) から3
(接続が閉じられた) に変更されるためです。関数は.onerror()
起動しないので、エラーはありません。どちらも.onclose()
機能するので、接続が閉じられていないと思いますが、どういうわけか自動的にシャットダウンします。
さらに重要なことに、毎秒.send()
メソッドを呼び出してデータをどこかに送信するタイムアウトがあります。bufferedAmount
何かを送信しようとするたびに websocket 属性が増加していることに気付きました。
私が送信しようとしている特定の種類のデータだけで、このすべての混乱を引き起こしている原因を実際に把握することはできません(以前はINVALID_STATE_ERR
例外をスローしましたが、現在はそうではないようです)。私の質問は、強制する方法はありますかこの接続は維持され、送信したいものを送信し続けますか?
ありがとう
編集:言及せずに申し訳ありません:私は常に、送信したいオブジェクト全体を文字列としてキャストしていますJSON.stringify()
。単純な文字列を送信しても、それをオブジェクトでラップして文字列化すると、正常に機能します。問題は、その種類のデータ型でのみ発生します。