我有一个行为奇怪的 websocket。当我发送一些简单的东西(例如非常简单的字符串)时,websocket 会按预期工作,并且接收器会接收到字符串。但是现在我正在尝试发送一些更复杂的数据类型:准确地说,我正在发送canvas.get()[0].toDataURL('image/png')
(应该是数据 URI 方案)的结果。显然 websocket 不喜欢该数据类型,因为即使包装它也会导致 websocket 将其readyState
属性从1
(connected) 更改为3
(connection closed)。该.onerror()
函数不会触发,因此没有错误。要么做这个.onclose()
功能,所以我想连接没有被关闭,但它会以某种方式自动关闭。
更重要的是,我有一个超时,每秒调用该.send()
方法将数据发送到某处。我注意到bufferedAmount
每次尝试发送某些东西时,websocket 属性都会增加。
我真的无法弄清楚是什么导致了所有这些混乱,只是我试图发送的那种特定类型的数据(之前也抛出了INVALID_STATE_ERR
异常,但现在显然不是),所以我的问题是:有没有办法强制这个连接要保持活动状态并继续发送我想发送的东西吗?
谢谢
编辑:很抱歉没有提到它:我总是将我想要作为字符串发送的整个对象通过JSON.stringify()
. 即使我发送简单的字符串,我也会将它包装在一个对象中并对其进行字符串化,它工作正常。只有这种数据类型才会出现问题。