You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何将Angel Broking WebSocket返回的二进制数据转为JSON或字符串

在Node.js中转换Angel Broking SmartAPI WebSocket二进制数据为JSON/字符串

当你从Angel Broking的SmartAPI WebSocket收到二进制数据时,这些数据本质是Node.js的Buffer对象,你可以通过以下步骤将其转换为字符串或JSON:

步骤1:将Buffer转换为字符串

使用Buffer.toString()方法(默认编码为utf8,这也是大多数API使用的编码格式),把二进制数据转成可读字符串。

步骤2:解析字符串为JSON对象

如果返回的字符串符合JSON格式,直接用JSON.parse()解析成JSON对象即可。同时建议添加异常处理,避免因数据格式错误导致程序崩溃。

修改后的代码如下:

const WebSocket = require('ws');
const ws = new WebSocket('ws://smartapisocket.angelone.in/smart-stream', {
  headers: {
    'Authorization': 'eyJhbGciOiJIUzUxMiJ9.eyJ1c2VybmFtZSI6IlY1NzUzNjkiLCJyb2xlcyI6MCwidXNlcnR5cGUiOiJVU0VSIiwiaWF0IjoxNjc1NzkxMTYyLCJleHAiOjE3NjIxOTExNjJ9.vLCZ_yja1HtnrShXHnlfLuMm2-fftyvFo16ZQE4_4gvwAq9LTJXBJVjTp7afsL0xFPJaUyFJbvF9QZndy69NaA',
    'x-api-key': 'XXXX',
    'x-client-code': 'XXXXX',
    'x-feed-token': 'XXXXXX'
  }
});

ws.send(payload);

// 接收数据并转换
ws.on('message', function incoming(data) {
  try {
    // 将二进制Buffer转为utf8字符串
    const dataString = data.toString('utf8');
    // 解析为JSON对象
    const jsonData = JSON.parse(dataString);
    console.log('解析后的JSON数据:', jsonData);
  } catch (error) {
    console.error('数据转换失败:', error);
    // 可以在这里处理解析失败的情况,比如打印原始字符串排查问题
    console.log('原始字符串数据:', data.toString('utf8'));
  }
});

额外说明

  • 如果API使用的不是utf8编码,可以尝试ascii或base64等其他编码格式,不过绝大多数场景下utf8都适用。
  • 异常处理很重要,因为WebSocket推送的数据可能存在格式异常,或者非JSON格式的通知消息,直接解析会抛出错误。

内容的提问来源于stack exchange,提问作者Muthukumar Marichamy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:46:00