如何告知websocket onmessage参数的类型?

mar*_*000 19 javascript blob websocket arraybuffer

这里https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent它指出属性数据类型为DOMString | Blob | ArrayBuffer.我怎么告诉它我想要哪种类型?或者我怎么知道我得到的是哪种类型?

pim*_*vdb 38

服务器可以发送的适当的两种类型的帧是文本帧和二进制帧(5.2).将ws.binaryType允许您定义以哪种方式,你想获得的二进制数据.

  • 二进制数据:取决于binaryType设置为arraybuffer或者blob
  • 文本数据:字符串

要确定类型,您可以使用:

  • e.data instanceof ArrayBuffer
  • e.data instanceof Blob
  • typeof e.data === "string"

参考:

4.如果type表示数据是Text,则将eventdata属性初始化为data.

如果type表示数据是Binary,并且binaryType设置为" blob",则将eventdata属性初始化为一个新Blob对象,该对象将数据表示为其原始数据.

如果type表示数据是Binary,并且binaryType设置为" arraybuffer",则将eventdata属性初始化为ArrayBuffer内容为的新的只读对象data.