node.js - Websocket 431 错误:意外的服务器响应
问题描述
我一直在为自己构建一个应用程序来扫描某些泵等,我需要 1h 和 5m 蜡烛数据来跟踪此类事件。代码工作正常,直到它给出 431 错误:意外的服务器响应。我正在使用 c9 进行编码,但我读到这可能是 websocket 必须一次处理多个请求。所以我尝试在那里放一个 setInterval() ,但仍然是同样的错误。
有关代码的任何建议以及如何解决该问题?
var market1h = 'not yet defined';
var market5m = 'not yet defined';
binance.prevDay(false, (error, prevDay) => {
let markets = [];
for ( let obj of prevDay ) {
let symbol = obj.symbol;
markets.push(symbol);
}
setInterval(get1hData, 1500);
setInterval(get5mData, 1200);
function get1hData(){
binance.websockets.candlesticks(markets, '1h', (candlestickData) => {
let tick = binance.last(candlestickData);
market1h = candlestickData[tick];
io.emit('market1h', market1h);
});
}
function get5mData(){
binance.websockets.candlesticks(markets, '5m', (candlestickData) => {
let tick = binance.last(candlestickData);
market5m = candlestickData[tick];
io.emit("market5m", market5m);
});
}
});
解决方案
strlen(url.path) 是我的转折点。
strlen 7929 = 成功
strlen 7942 = 失败
我没有找到任何关于 431 响应的官方文档。如果我不得不猜测:前端服务器拒绝超过一定大小的 url;并且不要将其送到后端服务器进行处理。
更新:
431 Request Header Fields Too Large 响应状态码表示服务器不愿意处理请求,因为它的头字段太大。
参考:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Status/431
推荐阅读
- php - Laravel hasMany 关系自定义选择结果为空
- highcharts - 如何从 Highmaps 中的图例中删除名称
- reactjs - 向机器人添加发送和麦克风按钮
- python - 在 SQLAlchemy 中连接多列
- routing - 如何在生产模式下自定义 nextjs URL
- ssh - 谷歌云实例“无法连接”
- php - “php artisan vendor:publish --tag=laravel-mail”不生成邮件视图
- react-native-camera - 升级到最新的 RN TypeError: undefined is not an object 后(评估 '_reactNativeCamera.RNCamera.constants.Aspect.fill')
- vuejs2 - Vue CLI 插件 Electron Builder 调度 vuex 操作失败
- python - 检测鼠标悬停在图例上,并在 matplotlib 中显示工具提示(标签/注释)?