首页 > 解决方案 > 在特定主页上的 Chrome 开发人员工具的网络选项卡上从 websocket 接收数据

问题描述

我写这个问题是因为我在编写当前程序时有一个问题。

如果您转到特定主页上的 Chrome 开发人员工具 -> 网络选项卡,您正在编写一个程序以将其作为 Node.js 接收。

在标头
请求 URL 的常规选项卡中:wss://stream-live.bitsonic.co.kr:8443/socket.io/?streams=btckrw ticker%2Fbtckrw aggTrade%2Fbtckrw*depth_20&EIO=3&transport=websocket&sid=1p8mHxkKcBYxAvKVE1id

我正在编写基于 url 作为 wss: // stream-live.bitsonic.co.kr:8443 / 的程序。

在查询字符串参数选项卡中,
流:btckrw ticker/btckrw aggTrade/btckrw*depth_20
EIO:3
传输:websocket
sid:1p8mHxkKcBYxAvKVE1id

包含值。

下面是我写的程序。

const io = require('socket.io-client');
const socket_url = 'wss://stream-live.bitsonic.co.kr:8443/';
var socket = io.connect(socket_url);
socket.on('connect', function(err, data){
console.log('Connected.1');
socket.emit('DEPTH',{
    query: {
        'streams': 'btckrw*ticker/btckrw*aggTrade/btckrw*depth_20',
        'EIO': '3',
        'transports': ['websocket'],  // ['websocket', 'flashsocket', 'polling']
        // 'nonce': Date.now()*1000,
        'sid': 'UzCyjO_8gXPpPrcEEoEg'
    }
});
});

socket.on('error', function(data){
    console.log('err',data);
});

socket.on('close', function(data){
    console.log('cls',data);
});

socket.on('message',(body)=>{
    console.log('msg',body);
});

在 web socket tap 中,message 的内容堆叠在 Frames 选项卡上,并且 io.on ('message') 应该包含内容。

以下是错误内容。

err:  { Error: xhr post error
    at XHR.Transport.onError (G:\dev\js\bsx\node_modules\engine.io-client\lib\transport.js:64:13)
    at Request.<anonymous> (G:\dev\js\bsx\node_modules\engine.io-client\lib\transports\polling-xhr.js:109:10)
    at Request.Emitter.emit (G:\dev\js\bsx\node_modules\component-emitter\index.js:133:20)
    at Request.onError (G:\dev\js\bsx\node_modules\engine.io-client\lib\transports\polling-xhr.js:309:8)
    at Timeout._onTimeout (G:\dev\js\bsx\node_modules\engine.io-client\lib\transports\polling-xhr.js:256:18)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5) type: 'TransportError', description: 403 }

如果您让我知道出了什么问题,我将不胜感激。

我为我糟糕的英语能力道歉。

标签: node.jswebsocketsocket.io

解决方案


你必须知道使用 socket.io 和普通的 WebSocket 是不一样的

如果我正确地得到了你想要的,那么你应该知道使用

socket.on('message',(body)=>{
    console.log('msg',body);
});

不一样

let socket = new WebSocket('url');
socket.onmessage(callback) //or using addEventListener

在socket.io中,message事件应该由你定义,我知道它不是自动的

在正常的 WebSocket 上message会监听一切并检查每个请求和响应

希望你能从我的回答中有所收获


推荐阅读