From 42ee9618b593f8188afc0a051d9ebb4efb04441f Mon Sep 17 00:00:00 2001 From: Edwin Date: Mon, 18 Sep 2023 13:11:22 +0800 Subject: [PATCH] pkg/exchange: emit regardless of whether there is an error or not. --- pkg/types/standardstream_callbacks.go | 12 ++++++++++++ pkg/types/stream.go | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/pkg/types/standardstream_callbacks.go b/pkg/types/standardstream_callbacks.go index d5796a94a..55a3e7c6b 100644 --- a/pkg/types/standardstream_callbacks.go +++ b/pkg/types/standardstream_callbacks.go @@ -44,6 +44,16 @@ func (s *StandardStream) EmitAuth() { } } +func (s *StandardStream) OnRawMessage(cb func(raw []byte)) { + s.rawMessageCallbacks = append(s.rawMessageCallbacks, cb) +} + +func (s *StandardStream) EmitRawMessage(raw []byte) { + for _, cb := range s.rawMessageCallbacks { + cb(raw) + } +} + func (s *StandardStream) OnTradeUpdate(cb func(trade Trade)) { s.tradeUpdateCallbacks = append(s.tradeUpdateCallbacks, cb) } @@ -183,6 +193,8 @@ type StandardStreamEventHub interface { OnAuth(cb func()) + OnRawMessage(cb func(raw []byte)) + OnTradeUpdate(cb func(trade Trade)) OnOrderUpdate(cb func(order Order)) diff --git a/pkg/types/stream.go b/pkg/types/stream.go index d6044aa26..730188ef7 100644 --- a/pkg/types/stream.go +++ b/pkg/types/stream.go @@ -100,6 +100,8 @@ type StandardStream struct { authCallbacks []func() + rawMessageCallbacks []func(raw []byte) + // private trade update callbacks tradeUpdateCallbacks []func(trade Trade) @@ -260,6 +262,8 @@ func (s *StandardStream) Read(ctx context.Context, conn *websocket.Conn, cancel continue } + s.EmitRawMessage(message) + if debugRawMessage { log.Info(string(message)) }