mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-04 09:58:22 +08:00
fix(market): prevent program crash on WebSocket failure
## Problem - Program crashes with log.Fatalf when WebSocket connection fails - Triggered by WebSocket hijacking issue (157.240.12.50) - Introduced in commit 3b1db6f (K-line WebSocket migration) ## Solution - Replace 4x log.Fatalf with log.Printf in monitor.go - Lines 177, 183, 189, 215 - Program now logs error and continues running ## Changes 1. Initialize failure: Fatalf → Printf (line 177) 2. Connection failure: Fatalf → Printf (line 183) 3. Subscribe failure: Fatalf → Printf (line 189) 4. K-line subscribe: Fatalf → Printf + dynamic period (line 215) ## Fallback - System automatically uses API when WebSocket cache is empty - GetCurrentKlines() has built-in degradation mechanism - No data loss, slightly slower API calls as fallback ## Impact - ✅ Program stability: Won't crash on network issues - ✅ Error visibility: Clear error messages in logs - ✅ Data integrity: API fallback ensures K-line availability Related: websocket-hijack-fix.md, auto-stop-bug-analysis.md
This commit is contained in:
+4
-4
@@ -121,19 +121,19 @@ func (m *WSMonitor) Start(coins []string) {
|
||||
// 初始化交易对
|
||||
err := m.Initialize(coins)
|
||||
if err != nil {
|
||||
log.Fatalf("❌ 初始化币种: %v", err)
|
||||
log.Printf("❌ 初始化币种失败: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = m.combinedClient.Connect()
|
||||
if err != nil {
|
||||
log.Fatalf("❌ 批量订阅流: %v", err)
|
||||
log.Printf("❌ 批量订阅流失败: %v", err)
|
||||
return
|
||||
}
|
||||
// 订阅所有交易对
|
||||
err = m.subscribeAll()
|
||||
if err != nil {
|
||||
log.Fatalf("❌ 订阅币种交易对: %v", err)
|
||||
log.Printf("❌ 订阅币种交易对失败: %v", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -159,7 +159,7 @@ func (m *WSMonitor) subscribeAll() error {
|
||||
for _, st := range subKlineTime {
|
||||
err := m.combinedClient.BatchSubscribeKlines(m.symbols, st)
|
||||
if err != nil {
|
||||
log.Fatalf("❌ 订阅3m K线: %v", err)
|
||||
log.Printf("❌ 订阅 %s K线失败: %v", st, err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user