这里https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent它声明属性数据的类型是 DOMString| 斑点 | 数组缓冲区。我如何告诉它我想要哪种类型?或者我怎么知道我得到的是哪种类型?
问问题
19060 次
2 回答
47
服务器可以发送的适当的两种类型的帧是文本帧和二进制帧(5.2)。ws.binaryType
允许您定义要以哪种格式获取二进制数据。
- 二进制数据:取决于
binaryType
设置为arraybuffer
orblob
- 文本数据:字符串
要确定类型,您可以使用:
e.data instanceof ArrayBuffer
e.data instanceof Blob
typeof e.data === "string"
参考:
4、如果type表示数据为Text,则将event的
data
属性初始化为data。如果type指示数据是 Binary,并
binaryType
设置为“ ”,则将event的属性blob
初始化为一个新对象,该对象将数据表示为其原始数据。data
Blob
如果 type 表示数据是 Binary,并且
binaryType
设置为“ ”,则将event的属性arraybuffer
初始化为一个新的只读对象,其内容为。data
ArrayBuffer
data
于 2012-02-27T10:00:33.477 回答
2
“我怎么告诉它我想要哪种类型?”
websocket 帧中的数据类型由发送者确定(参见1.2),因此不能由接收者设置。如果发送文本数据,则类型e.data
为string
。如果发送二进制数据,则将是或e.data
的一个实例,具体取决于接收方设置的属性值。ArrayBuffer
Blob
ws.binaryType
“或者我怎么知道我得到的是哪种类型?”
pimvdb 已经回答了这个问题。
于 2018-08-23T11:37:26.417 回答