【问题标题】:Can't send json data over WebSocket (NODE JS)无法通过 WebSocket (NODE JS) 发送 json 数据
【发布时间】:2022-01-27 00:52:23
【问题描述】:

创建 .onopen 事件后,我让它启动了一些 json 数据,但出现错误, 代码如下:

 ws.onopen = ('connect', function(connect) {
            let obj={};
            obj.name='data'
            message = 'connect';
            obj.body=message;
            var data = {"op": 0, "d": {"server_id": serverid, "user_id": author, "session_id": sessionid, "token": tokenn, "video": true, "streams": [
                {"type": "video", "rid": "100", "quality": -1}, {"type": "video", "rid": "50", "quality": 9223372036854775807}]}}, separators=(",", ":");

            ws.send(data.toString())


我得到了什么: 节点:事件:368 投掷者; // 未处理的“错误”事件 ^

错误:读取 ECONNRESET 在 TLSWrap.onStreamRead (节点:internal/stream_base_commons:220:20) 在 WebSocket 实例上发出 'error' 事件:

【问题讨论】:

  • data.toString() 总是只是[object Object] 如果你想把你的对象变成一个字符串,使用JSON.stringify()

标签: javascript node.js json websocket


【解决方案1】:

使用“JSON.stringify(data)”将对象转换为字符串

【讨论】:

    【解决方案2】:

    我不完全确定这是您的问题,因为错误看起来无关。

    data.toString() 只会返回"[object Object]"。你需要使用JSON.stringify(data)

    ECONNRESET 通常表示连接意外关闭。也许您的服务器收到了您的有效负载并以某种方式关闭了连接,因为它是 [object Object] 而不是有效的 JSON?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 2013-06-14
      • 2018-05-23
      • 1970-01-01
      • 2021-07-11
      • 2015-02-13
      • 2017-09-05
      • 1970-01-01
      相关资源
      最近更新 更多