Open akrepfatih opened 1 year ago
Merhaba,
Maalesef her seferinde tüm orderbook datasını gönderen bir kanal mümkün değil. Bu her iki taraf için de aşırı derecede network bandwith kullanımına neden olabilecek bir durum.
Size gelen orderbook difference verisinde bulunan cs değişkeninde change set numarası her pakette artan numara olarak gelir. Eğer son aldığınız paket ile bir önceki arasındaki fark 1 değil ise arada bir pakedi kaçırmışsınız anlamına gelir. Böyle durumlarda kanala yeniden subscribe olmanız gerekir.
Haklısınız paket kaçırdığımı bu şekilde bulabilirim. Listenin ilk 50 sini değil de ilk 5 i gibi bir kanal olsa bu fazla bandwith kullanımını azaltır diye düşünüyorum. 50 Yerine 5 yollamak % 90 gibi bir tasarruf sağlar. Bunun da iki tarafı da üzmeyeceğini düşünüyorum.
{"pairSymbol":"BTCUSDT","asks":[{"p":"30546","q":"0.91938"},{"p":"30547","q":"0.32488"},{"p":"30548","q":"0.17396"},{"p":"30551","q":"0.89272"},{"p":"30553","q":"1.18969"}],"bids":[{"p":"30542","q":"0.82213"},{"p":"30537","q":"0.47291"},{"p":"30536","q":"2.5907"},{"p":"30534","q":"0.32023"},{"p":"30533","q":"0.42497"}]}
Yukarıdaki örnek 321 bayt büyüklüğünde biz diyelim 500 bayt. 100ms de 1 güncellense 500 10 = 5000 bayt = Yaklaşık 5 KB 1 saniye banwith kullanır. 5 KB 200 işlem çifti = 1000 KB = 1 Megabayt 200 işlem çifti için gerekli 1 saniyede ki banwith kullanımı.
Yine de siz bilirsiniz.
Tam incelime yapmasam da Api , Websocket leriniz düzgün gözüküyor. Çalışmalarınız da başarılar diliyorum.
Merhaba,
Öneriniz için teşekkürler. Websocket'e orderbook-short adında parametreli bir kanal eklenmiştir. Websocket kısmına kullanım şekli de eklenmiştir.
https://github.com/icrypex-com/apidoc/blob/main/websockets.md
orderbook|{"ps":"AVAXUSDT/P","cs":0,"a":[{"q":"381.02685","p":"35.9"},{"q":"208.15863","p":"35.98"},{"q":"427.12047","p":"36.02"},{"q":"158.36602","p":"36.11"},{"q":"62.28367","p":"36.18"}],"b":[{"q":"100.92101","p":"35.79"},{"q":"252.13423","p":"35.77"},{"q":"268.67918","p":"35.68"},{"q":"461.75226","p":"35.55"},{"q":"306.80464","p":"35.46"}]}
cs verisi sürekli 0 geliyor yollamanızın bir anlamı var mı ?
timestamp ı da yollasanız iyi olurdu.
Konuyu bug olarak işaretledim. İnceleme ve geliştirme tamamladıktan sonda dönüş yapılacaktır.
C# string msg = "subscribe|{"c":"orderbook@btcusdt","s":true}";
Websocket ile kanalı dinliyorum ama değişimleri veriyor. Burada bir paket kaçırırsak hiç iyi olmaz. Sürekli listeyi veren bir kanal var mı ?