@@ -32,6 +32,11 @@ protected async Task<string> GetWebSocketStreamUrlForSymbolsAsync(string suffix,
32
32
{
33
33
marketSymbols = ( await GetMarketSymbolsAsync ( ) ) . ToArray ( ) ;
34
34
}
35
+ if ( marketSymbols . Length > 400 )
36
+ {
37
+ marketSymbols = marketSymbols . Take ( 400 ) . ToArray ( ) ;
38
+ Logger . Warn ( "subscribing to the first 400 symbols" ) ; // binance does not allow subscribing to more than 400 symbols at a time
39
+ }
35
40
36
41
StringBuilder streams = new StringBuilder ( "/stream?streams=" ) ;
37
42
for ( int i = 0 ; i < marketSymbols . Length ; i ++ )
@@ -234,9 +239,15 @@ protected override async Task<IEnumerable<KeyValuePair<string, ExchangeTicker>>>
234
239
return tickers ;
235
240
}
236
241
237
- protected override Task < IWebSocket > OnGetTickersWebSocketAsync ( Action < IReadOnlyCollection < KeyValuePair < string , ExchangeTicker > > > callback , params string [ ] symbols )
242
+ protected override async Task < IWebSocket > OnGetTickersWebSocketAsync ( Action < IReadOnlyCollection < KeyValuePair < string , ExchangeTicker > > > callback , params string [ ] symbols )
238
243
{
239
- return ConnectPublicWebSocketAsync ( "/stream?streams=!ticker@arr" , async ( _socket , msg ) =>
244
+ string url = null ;
245
+ if ( symbols == null || symbols . Length == 0 )
246
+ {
247
+ url = "/stream?streams=!ticker@arr" ;
248
+ }
249
+ else url = await GetWebSocketStreamUrlForSymbolsAsync ( "@ticker" , symbols ) ;
250
+ return await ConnectPublicWebSocketAsync ( url , async ( _socket , msg ) =>
240
251
{
241
252
JToken token = JToken . Parse ( msg . ToStringFromUTF8 ( ) ) ;
242
253
List < KeyValuePair < string , ExchangeTicker > > tickerList = new List < KeyValuePair < string , ExchangeTicker > > ( ) ;
@@ -275,11 +286,6 @@ protected override async Task<IWebSocket> OnGetTradesWebSocketAsync(Func<KeyValu
275
286
{
276
287
marketSymbols = ( await GetMarketSymbolsAsync ( ) ) . ToArray ( ) ;
277
288
}
278
- if ( marketSymbols . Length > 400 )
279
- {
280
- marketSymbols = marketSymbols . Take ( 400 ) . ToArray ( ) ;
281
- Logger . Warn ( "subscribing to the first 400 symbols" ) ; // binance does not allow subscribing to more than 400 symbols at a time
282
- }
283
289
string url = await GetWebSocketStreamUrlForSymbolsAsync ( "@aggTrade" , marketSymbols ) ;
284
290
return await ConnectPublicWebSocketAsync ( url , messageCallback : async ( _socket , msg ) =>
285
291
{
0 commit comments