BTCTrader / broker-api-docs

The documentation for BTCTrader's white label exchange platform API. Use this documentation to access the APIs of BTCTurk other BTCTrader partners.
110 stars 32 forks source link

BtcTurk bağlantı sorunu #568

Closed mberkalp closed 6 months ago

mberkalp commented 6 months ago

API den canlı veri alıyorum. Bir süre sonra bağlantı kopuyor. Bu durum zamana bağlı değil. Bazen bir saat bazen bir kaç saat sonra oluyor. Bu problemi nasıl çözebiliriz?

        C:\ProgramData\Anaconda3\lib\json\decoder.py in raw_decode(self, s, idx)
        353             obj, end = self.scan_once(s, idx)
        354         except StopIteration as err:
    --> 355             raise JSONDecodeError("Expecting value", s, err.value) from None
        356         return obj, end

    JSONDecodeError: Expecting value: line 1 column 1 (char 0)
catnug commented 6 months ago

connection instance i uzerinden ping eventini dinleyip, ping ile gelen payload ile pong mesaji gonderiyor musunuz ?

mberkalp commented 6 months ago

Merhaba,

Kesinti olmaksızın düzenli veri alabilmek için websocket bağlantılarını kullanmak gerektiğini fark ettim. Amacım Kline verilerinden belirli zaman aralıkları için veri alabilmek. Bunu yolu nedir? Ticker verilerini aşağıdaki bağlantı ve sorguyla gayet rahat alabiliyorum. Ancak Kline verileri için nasıl bir bağlantı ve sorgu kullanmalıyım. Yardımcı olursanız sevinirim. Selamlar.

ws = websocket.WebSocketApp( "wss://ws-feed-pro.btcturk.com/", on_message=on_message, on_error=on_error, on_close=on_close)

message = [151, {"type": 151, "channel": 'ticker', "event": 'FLOKITRY', "join": True}

Bu sorgu verileri getirmekle birlikte response, request, websocket headerları ve raw data bilgilerini de getirmekte. çıktıları gözlemlerken bu bilgilerin tekrarı işi karmaşık hale getiriyor. Bu bilgilerin filtrelenmesi gösterilmemesi sağlanabilir mi? rawdata

ocinbat commented 6 months ago

Sunucularımız Azure West Europe üzerinde koşuyor. Cloud bazlı servislerde bu bağlantılar %100 güvenilir olmuyor. Gerek sizin bağlantınız, gerek bizim websocket sunucularının iç sistemlerle bağlantıları ara ara kopabiliyor. Bu tarz durumlarda tekrar bağlantı kurulması için retry stratejileri geliştirmeniz gerekiyor. Bu işin fıtratında var demek istemiyorum ama bu işin fıtratında var. :)