无法在 Websocket 中打印 event.data 对象的属性值?

Posted

技术标签:

【中文标题】无法在 Websocket 中打印 event.data 对象的属性值?【英文标题】:Unable to print property values of event.data object in Websocket? 【发布时间】:2021-12-01 07:31:36 【问题描述】:

我是第一次尝试使用 Websocket,但无法获取事件对象的属性值。

这是我的脚本

let socket = new WebSocket('wss://stream.binance.com:9443/ws/ethusdt@kline_1m')

let o = 
  "method": "SUBSCRIBE",
  "params": [
    "ethusdt@kline_1m"
  ],
  "id": 1


socket.send(JSON.stringify(o)) 

socket.addEventListener('message', (e)=>let candle = e.data; console.log(candle['k']))

e.data 像这样返回对象:


  "e": "kline",     // Event type
  "k": 
    "o": "0.0010",  // Open price
    "c": "0.0020",  // Close price
    "h": "0.0025",  // High price
    "l": "0.0015",  // Low price
  

但是,我的脚本总是返回 undefined

我怎样才能得到这些值?

【问题讨论】:

【参考方案1】:

刚发现需要用JSON.parse()e.data转成object。

所以,它变成了这个 socket.addEventListener('message', (e)=>let candle = JSON.parse(e.data); console.log(candle['k']))

【讨论】:

以上是关于无法在 Websocket 中打印 event.data 对象的属性值?的主要内容,如果未能解决你的问题,请参考以下文章

网页打印时提示websocket没有准备好

如何从 websocket(客户端)打印流信息?

从 websocket 过滤 json 对象/值并打印到控制台日志

从websocket过滤json对象/值并打印到控制台日志

基于python的websocket开发,tomcat日志web页面实时打印监控案例

页面关闭后无法在服务人员中维护 websocket