如何判断消息参数上的 websocket 的类型
How do I tell the type of websocket onmessage's parameter?
这里 https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent 它声明属性数据的类型为 DOMString|斑点 |数组缓冲区。我如何告诉它我想要哪种类型?或者我怎么知道我得到的是哪种类型?
服务器可以发送的两种类型的框架是文本框架和二进制框架 (5.2(。ws.binaryType
允许您定义要获取二进制数据的格式。
- 二进制数据:取决于
binaryType
设置为arraybuffer
或blob
- 文本数据:字符串
要确定类型,您可以使用:
-
e.data instanceof ArrayBuffer
-
e.data instanceof Blob
-
typeof e.data === "string"
参考:
4. 如果 type 指示数据是文本,则将事件的
data
属性初始化为数据。如果 type 指示数据是二进制的,并且
binaryType
设置为"blob
",则将事件的data
属性初始化为表示数据作为其原始数据的新Blob
对象。如果 type 指示数据是二进制的,并且
binaryType
设置为"arraybuffer
",则将事件的data
属性初始化为内容data
的新只读ArrayBuffer
对象。
"我怎么知道我想要哪种类型?">
websocket 帧中的数据类型由发送方确定(参见 1.2(,因此不能由接收方设置。如果发送文本数据,则e.data
的类型为 string
。如果发送二进制数据,则e.data
将是ArrayBuffer
或Blob
的实例,这取决于接收方设置的ws.binaryType
属性的值。
"或者我怎么知道我得到的是哪种类型?">
pimvdb已经回答了这个问题。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- jquery设置为使用参数运行
- Javascript”;类“;带有参数的扩展
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 函数未将值作为参数传递
- 如何将参数传递到angularJs中的工厂
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- chrome在WebSocket握手期间获取新错误
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- Websocket 从查询中获取参数
- 如何判断消息参数上的 websocket 的类型
- 如何在声明WebSocket HTML5上发送参数
- 如果方法被参数化,nodejs WebSocket.send()不会发送