如何将 JSON 数据与从 websocket 接收的 ArrayBuffer 分离
Posted
技术标签:
【中文标题】如何将 JSON 数据与从 websocket 接收的 ArrayBuffer 分离【英文标题】:How to separate JSON data from ArrayBuffer receiving from websocket 【发布时间】:2013-05-24 15:55:54 【问题描述】:我尝试将 JSON 数据与从 websocket 接收的缓冲区数组中分离出来,如下所示。
"type":"string","data":"UklGRkIjAABXRUJQVlA4IDYjAACQswCdASqrAfAAPm0wlUemI"
[object ArrayBuffer]
目的是用适当的功能分别阅读它们。我的旧方法是先解析 JSON。如果失败,则通过另一个函数。
我以两种格式发送它们的原因是,将 JSON 数据转换为数组或将数组转换为 JSON 会使文件大小增加大约三倍。 最佳做法是分开发送。 但是,在终端上,我使用
读取 JSON 数据var json = JSON.parse(e.data);
并使用 DataView 方法读取 ArrayBuffer。
应用程序在表面上运行正常,但如果您在 console.log 中查看,则会发现太多 Uncaugth Error。
它还会在某一点阻塞数据流,导致流溢出不太顺畅。
提前感谢您的任何建议。
【问题讨论】:
【参考方案1】:知道了:
if ((typeof data == 'object'))
// this would return ArrayBuffer
else
// this would return JSON
【讨论】:
以上是关于如何将 JSON 数据与从 websocket 接收的 ArrayBuffer 分离的主要内容,如果未能解决你的问题,请参考以下文章
如何将带有 ArrayBuffer 的 JSON 对象发送到 websocket?
如何在目标站点上抓取通过 websocket 流式传输的 JSON 数据
如何使用 Python(带有 websockets 的服务器)和 JavaScript(客户端)接收 JSON 数据