@@ -132,12 +132,13 @@ def __init__(self, client, symbol, callback=None):
132132 self ._client = client
133133 self ._symbol = symbol
134134 self ._callback = callback
135- self ._first_update_id = 0
135+ self ._first_update_id = None
136+ self ._depth_message_buffer = []
136137 self ._bm = None
137138 self ._depth_cache = DepthCache (self ._symbol )
138139
139- self ._init_cache ()
140140 self ._start_socket ()
141+ self ._init_cache ()
141142
142143 def _init_cache (self ):
143144 res = self ._client .get_order_book (symbol = self ._symbol , limit = 500 )
@@ -149,6 +150,11 @@ def _init_cache(self):
149150 for ask in res ['asks' ]:
150151 self ._depth_cache .add_ask (ask )
151152
153+ for msg in self ._depth_message_buffer :
154+ self ._process_depth_message (msg )
155+
156+ del self ._depth_message_buffer
157+
152158 def _start_socket (self ):
153159 self ._bm = BinanceSocketManager (self ._client )
154160
@@ -162,6 +168,21 @@ def _depth_event(self, msg):
162168 :param msg:
163169 :return:
164170
171+ """
172+
173+ if self ._first_update_id is None :
174+ # Initial depth snapshot fetch not yet performed, buffer messages
175+ self ._depth_message_buffer .append (msg )
176+ return
177+
178+ self ._process_depth_message (msg )
179+
180+ def _process_depth_message (self , msg ):
181+ """Process a depth event message.
182+
183+ :param msg: Depth event message.
184+ :return:
185+
165186 """
166187 # ignore any updates before the initial update id
167188 if msg ['u' ] <= self ._first_update_id :
0 commit comments