You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js连接Binance WebSocket出现EPROTO错误的解决求助

Node.js连接Binance WebSocket出现EPROTO错误的解决求助

大家好,我最近在尝试用Node.js连接Binance的BTCUSDT交易数据流,写了一段简单的代码,但运行后一直抛出EPROTO错误,折腾了好多种方法都没解决,想请各位帮忙看看问题出在哪。

我的代码如下:

const WebSocket = require('ws');

const ws = new WebSocket('wss://stream.binance.com:9443/ws/btcusdt@trade');

ws.on('message', function incoming(data) {
  console.log(data);
});

运行这段代码后,控制台输出了下面的错误信息:

node:events:493
throw er; // Unhandled 'error' event
^

Error: write EPROTO 885B0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:355:
at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:94:16)

Emitted 'error' event on WebSocket instance at:
at emitErrorAndClose (C:\Users\uchun\node_modules\ws\lib\websocket.js:1033:13)
at ClientRequest.<anonymous> (C:\Users\uchun\node_modules\ws\lib\websocket.js:880:5)
at ClientRequest.emit (node:events:515:28)
at TLSSocket.socketErrorListener (node:_http_client:495:9)
at TLSSocket.emit (node:events:515:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
errno: -4046,
code: 'EPROTO',
syscall: 'write'
}

Node.js v21.1.0

我已经试过了很多方法,比如检查网络连接是否正常、更新ws包到最新版本、切换Node.js版本(目前用的是v21.1.0),甚至换了不同的网络环境,但错误还是一直出现,实在找不到头绪了,希望有经验的朋友能给点建议,谢谢!

备注:内容来源于stack exchange,提问作者Samandar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:50:27