在这里https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent中,它指出属性数据的类型是DOMString | Blob | ArrayBuffer。我如何告诉它我想要哪种类型?或者我如何知道我得到了哪种类型的数据?
在这里https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent中,它指出属性数据的类型是DOMString | Blob | ArrayBuffer。我如何告诉它我想要哪种类型?或者我如何知道我得到了哪种类型的数据?
服务器可以发送的两种适当类型的帧是文本帧和二进制帧 (5.2)。 ws.binaryType
允许您定义希望以哪种格式获取二进制数据。
binaryType
被设置为 arraybuffer
或 blob
中哪一个要确定类型,您可以使用:
e.data instanceof ArrayBuffer
e.data instanceof Blob
typeof e.data === "string"
参考资料:
4. 如果 type 表示数据是文本,则将 event 的
data
属性初始化为 data。如果 type 表示数据是二进制的,并且
binaryType
设置为“blob
”,则将 event 的data
属性初始化为一个新的Blob
对象,该对象将 data 作为其原始数据。如果 type 表示数据是二进制的,并且
binaryType
设置为“arraybuffer
”,则将 event 的data
属性初始化为一个新的只读ArrayBuffer
对象,其内容为data
。
e.data
的类型为string
。如果发送二进制数据,则e.data
将是ArrayBuffer
或Blob
的实例,具体取决于接收者设置的ws.binaryType
属性的值。
“或者我怎样知道我得到了哪种类型?”这个问题已经被pimvdb回答过了。