如何将 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 分离的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中将 JSON 转换为数据类型?

如何将带有 ArrayBuffer 的 JSON 对象发送到 websocket?

如何在目标站点上抓取通过 websocket 流式传输的 JSON 数据

如何使用 Python(带有 websockets 的服务器)和 JavaScript(客户端)接收 JSON 数据

在网页上用websocket播放RTSP实时流 性能优化 进阶方案

如何将多个 url 组合成一个 websocket?