binance / binance/binance-futures-connector-java

WebSocket java.io.EOFException: null

Open
#24 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
191
Forks
96
PR merge metrics
No merged PRs in 30d

Description

Anyone has the same issue when using WebSocket to receive ContinuousKline data in Mainland China using VPN?

```
> Task :bootRun

. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.1)

2024-01-04 22:27:25.335[1704378445335] | INFO | main | o.g.b.BianTraderApplicationKt - Starting BianTraderApplicationKt using Java 17.0.9 with PID 1860 (.\source\bian-trader)
2024-01-04 22:27:25.337[1704378445337] | INFO | main | o.g.b.BianTraderApplicationKt - No active profile set, falling back to 1 default profile: "default"
2024-01-04 22:27:26.610[1704378446610] | INFO | main | o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
2024-01-04 22:27:26.622[1704378446622] | INFO | main | o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
2024-01-04 22:27:26.624[1704378446624] | INFO | main | o.a.catalina.core.StandardService - Starting service [Tomcat]
2024-01-04 22:27:26.624[1704378446624] | INFO | main | o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.17]
2024-01-04 22:27:26.696[1704378446696] | INFO | main | o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2024-01-04 22:27:26.698[1704378446698] | INFO | main | o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1294 ms
2024-01-04 22:27:27.072[1704378447072] | INFO | main | o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
2024-01-04 22:27:27.098[1704378447098] | INFO | main | o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path ''
2024-01-04 22:27:27.110[1704378447110] | INFO | main | o.g.b.BianTraderApplicationKt - Started BianTraderApplicationKt in 2.236 seconds (process running for 2.794)
2024-01-04 22:27:27.407[1704378447407] | INFO | scheduling-1 | o.g.biantrader.services.BianService - Getting continuousKlines, request={pair=PEOPLEUSDT, contractType=PERPETUAL, interval=1m, limit=60}
2024-01-04 22:27:27.409[1704378447409] | INFO | scheduling-1 | c.b.c.f.client.utils.RequestHandler - GET https://fapi.binance.com/fapi/v1/continuousKlines?pair=PEOPLEUSDT&contractType=PERPETUAL&interval=1m&limit=60
2024-01-04 22:27:29.734[1704378449734] | INFO | scheduling-1 | o.g.biantrader.services.BianService - Getting continuousKlines, request={pair=PEOPLEUSDT, contractType=PERPETUAL, interval=3m, limit=60}
2024-01-04 22:27:29.734[1704378449734] | INFO | scheduling-1 | c.b.c.f.client.utils.RequestHandler - GET https://fapi.binance.com/fapi/v1/continuousKlines?pair=PEOPLEUSDT&contractType=PERPETUAL&interval=3m&limit=60
2024-01-04 22:27:29.968[1704378449968] | INFO | scheduling-1 | o.g.b.s.WebsocketStreamService - subscribeStream: PEOPLEUSDT, contractType: perpetual, interval: 1m
2024-01-04 22:27:29.971[1704378449971] | INFO | scheduling-1 | c.b.c.f.c.utils.WebSocketConnection - [Connection 1] Connecting to stream.binancefuture.com/ws/peopleusdt_perpetual@continuousKline_1m
2024-01-04 22:27:29.979[1704378449979] | INFO | scheduling-1 | o.g.b.s.WebsocketStreamService - Subscribed stream: PEOPLEUSDT_perpetual@continuousKline_1m, connectionId: 1
2024-01-04 22:27:30.089[1704378450089] | INFO | scheduling-1 | o.g.b.s.WebsocketStreamService - subscribeStream: PEOPLEUSDT, contractType: perpetual, interval: 3m
2024-01-04 22:27:30.089[1704378450089] | INFO | scheduling-1 | c.b.c.f.c.utils.WebSocketConnection - [Connection 2] Connecting to stream.binancefuture.com/ws/peopleusdt_perpetual@continuousKline_3m
2024-01-04 22:27:30.090[1704378450090] | INFO | scheduling-1 | o.g.b.s.WebsocketStreamService - Subscribed stream: PEOPLEUSDT_perpetual@continuousKline_3m, connectionId: 2
2024-01-04 22:27:30.090[1704378450090] | INFO | scheduling-1 | o.g.biantrader.services.BianService - Getting continuousKlines, request={pair=NKNUSDT, contractType=PERPETUAL, interval=1m, limit=60}
2024-01-04 22:27:30.091[1704378450091] | INFO | scheduling-1 | c.b.c.f.client.utils.RequestHandler - GET https://fapi.binance.com/fapi/v1/continuousKlines?pair=NKNUSDT&contractType=PERPETUAL&interval=1m&limit=60
2024-01-04 22:27:30.354[1704378450354] | INFO | scheduling-1 | o.g.biantrader.services.BianService - Getting continuousKlines, request={pair=NKNUSDT, contractType=PERPETUAL, interval=3m, limit=60}
2024-01-04 22:27:30.354[1704378450354] | INFO | scheduling-1 | c.b.c.f.client.utils.RequestHandler - GET https://fapi.binance.com/fapi/v1/continuousKlines?pair=NKNUSDT&contractType=PERPETUAL&interval=3m&limit=60
2024-01-04 22:27:30.603[1704378450603] | INFO | scheduling-1 | o.g.b.s.WebsocketStreamService - subscribeStream: NKNUSDT, contractType: perpetual, interval: 1m
2024-01-04 22:27:30.604[1704378450604] | INFO | scheduling-1 | c.b.c.f.c.utils.WebSocketConnection - [Connection 3] Connecting to stream.binancefuture.com/ws/nknusdt_perpetual@continuousKline_1m
2024-01-04 22:27:30.605[1704378450605] | INFO | scheduling-1 | o.g.b.s.WebsocketStreamService - Subscribed stream: NKNUSDT_perpetual@continuousKline_1m, connectionId: 3
2024-01-04 22:27:30.711[1704378450711] | INFO | scheduling-1 | o.g.b.s.WebsocketStreamService - subscribeStream: NKNUSDT, contractType: perpetual, interval: 3m
2024-01-04 22:27:30.711[1704378450711] | INFO | scheduling-1 | c.b.c.f.c.utils.WebSocketConnection - [Connection 4] Connecting to stream.binancefuture.com/ws/nknusdt_perpetual@continuousKline_3m
2024-01-04 22:27:30.711[1704378450711] | INFO | scheduling-1 | o.g.b.s.WebsocketStreamService - Subscribed stream: NKNUSDT_perpetual@continuousKline_3m, connectionId: 4
2024-01-04 22:27:31.750[1704378451750] | INFO | OkHttp https://stream.binancefuture.com/... | c.b.c.f.c.utils.WebSocketConnection - [Connection 2] Connected to Server
2024-01-04 22:27:31.769[1704378451769] | INFO | OkHttp https://stream.binancefuture.com/... | c.b.c.f.c.utils.WebSocketConnection - [Connection 1] Connected to Server
2024-01-04 22:27:31.810[1704378451810] | INFO | DefaultDispatcher-worker-3 | o.g.b.listeners.TraderDataListener - onMessage: null
2024-01-04 22:27:31.810[1704378451810] | INFO | DefaultDispatcher-worker-1 | o.g.b.listeners.TraderDataListener - onMessage: null
2024-01-04 22:27:31.811[1704378451811] | WARN | DefaultDispatcher-worker-3 | o.g.b.listeners.TraderDataListener - Invalid data, pair=null, interval=null, klineData=null
2024-01-04 22:27:31.811[1704378451811] | WARN | DefaultDispatcher-worker-1 | o.g.b.listeners.TraderDataListener - Invalid data, pair=null, interval=null, klineData=null
2024-01-04 22:27:32.230[1704378452230] | INFO | OkHttp https://stream.binancefuture.com/... | c.b.c.f.c.utils.WebSocketConnection - [Connection 3] Connected to Server
2024-01-04 22:27:32.230[1704378452230] | INFO | DefaultDispatcher-worker-1 | o.g.b.listeners.TraderDataListener - onMessage: null
2024-01-04 22:27:32.231[1704378452231] | WARN | DefaultDispatcher-worker-1 | o.g.b.listeners.TraderDataListener - Invalid data, pair=null, interval=null, klineData=null
2024-01-04 22:27:32.295[1704378452295] | INFO | OkHttp https://stream.binancefuture.com/... | c.b.c.f.c.utils.WebSocketConnection - [Connection 4] Connected to Server
2024-01-04 22:27:32.295[1704378452295] | INFO | DefaultDispatcher-worker-1 | o.g.b.listeners.TraderDataListener - onMessage: null
2024-01-04 22:27:32.295[1704378452295] | WARN | DefaultDispatcher-worker-1 | o.g.b.listeners.TraderDataListener - Invalid data, pair=null, interval=null, klineData=null
2024-01-04 22:27:58.647[1704378478647] | WARN | OkHttp https://stream.binancefuture.com/... | o.g.b.listeners.FailureListener - onMessage: {"e":"continuous_kline","E":1704378482091,"ps":"PEOPLEUSDT","ct":"PERPETUAL","k":{"t":1704378420000,"T":1704378479999,"i":"1m","f":-1,"L":-1,"o":"0.02500","c":"0.0
2500","h":"0.02500","l":"0.02500","v":"0","n":0,"x":true,"q":"0.00000","V":"0","Q":"0.00000","B":"0"}}
2024-01-04 22:27:58.648[1704378478648] | WARN | OkHttp https://stream.binancefuture.com/... | o.g.b.listeners.FailureListener - onMessage: {"e":"continuous_kline","E":1704378482093,"ps":"NKNUSDT","ct":"PERPETUAL","k":{"t":1704378420000,"T":1704378479999,"i":"1m","f":-1,"L":-1,"o":"0.24400","c":"0.2440
0","h":"0.24400","l":"0.24400","v":"0","n":0,"x":true,"q":"0.00000","V":"0","Q":"0.00000","B":"0"}}
2024-01-04 22:27:59.578[1704378479578] | WARN | OkHttp https://stream.binancefuture.com/... | o.g.b.listeners.FailureListener - onMessage: {"e":"continuous_kline","E":1704378483000,"ps":"PEOPLEUSDT","ct":"PERPETUAL","k":{"t":1704378420000, "T":1704378479999, "i":"1m", "f":-1, "L":-1, "o":"0.02500", "c
":"0.02500", "h":"0.02500", "l":"0.02500", "v":"0", "n":0, "x":true, "q":"0", "V":"0", "Q":"0", "B":"0"}}
2024-01-04 22:27:59.578[1704378479578] | WARN | OkHttp https://stream.binancefuture.com/... | o.g.b.listeners.FailureListener - onMessage: {"e":"continuous_kline","E":1704378483000,"ps":"NKNUSDT","ct":"PERPETUAL","k":{"t":1704378420000, "T":1704378479999, "i":"1m", "f":-1, "L":-1, "o":"0.24400", "c":"
0.24400", "h":"0.24400", "l":"0.24400", "v":"0", "n":0, "x":true, "q":"0", "V":"0", "Q":"0", "B":"0"}}
2024-01-04 22:28:30.875[1704378510875] | ERROR | OkHttp https://stream.binancefuture.com/... | c.b.c.f.c.utils.WebSocketConnection - [Connection 1] Failure
java.io.EOFException: null
at okio.RealBufferedSource.require(RealBufferedSource.kt:202)
at okio.RealBufferedSource.readByte(RealBufferedSource.kt:212)
at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.kt:119)
at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.kt:102)
at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.kt:293)
at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:195)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the WebSocketConnection failure stack trace and inspect how FailureListener and TraderDataListener handle the continuousKline messages shown in the report. Reproduce the connection using the reported continuousKline streams if possible, then define completion as identifying and documenting or correcting the EOFException and invalid-message behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.