node.js - 在特定主页上的 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 }
如果您让我知道出了什么问题,我将不胜感激。
我为我糟糕的英语能力道歉。
解决方案
你必须知道使用 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
会监听一切并检查每个请求和响应
希望你能从我的回答中有所收获
推荐阅读
- c# - 如何从 Unity 上的 C# 静态类获取当前文件夹
- sql - Sqlite 检查逗号分隔的数字字符串是否包含数字
- mysql - 从 mySQL 获取 HTML 重数据到 excel
- algorithm - 为什么二分查找 Log 的复杂度是以 2 为底的?
- chart.js - 圆环图未使用 csv 数据 chart.js 呈现
- android - 如何在锁定屏幕上显示通知?
- hdfs - gedit 创建 sql 文件
- java - Java 构造函数空对象
- javascript - switch 语句中的返回值
- sql - 使用 where getcurrent date 和 datetime 00:00