Ana içeriğe atla

Kurulum

İstemciyi oluşturma

Minimal:
.Build(ctx)’in, dönmeden önce WebSocket bağlantısını kurduğunu unutmayın - geçirilen context, ilk bağlantıyı yönetir. Bağlantı başarısız olursa hatayı hemen alırsınız. İstemci daha sonra Close()’a kadar çalışır.

Builder yöntemleri

.URL(url) - Birincil WebSocket uç noktası. ORBITFLARE_WS_URL ortam değişkenine düşer.
.URLs(urls...) - Tek çağrıda birincil + yedekler.
.FallbackURL(url) / .FallbackURLs(urls...) - Yedek uç noktalar ekler. Yeniden bağlanırken SDK aralarında döner.
.APIKey(key) - Lisans anahtarı. ORBITFLARE_LICENSE_KEY ortam değişkenine düşer. Bağlantı anında URL’ye eklenir, loglara veya hatalara asla yazdırılmaz.
.Retry(policy) - Yeniden bağlanma backoff’u. Varsayılan: 100 ms başlangıç, 30 s maksimum, 2x çarpan, sonsuz deneme.
.PingInterval(duration) - SDK’nın WebSocket Ping çerçevelerini ne sıklıkta gönderdiği. Varsayılan 10 s.
.MaxMissedPongs(n) - Bağlantı kapatılmadan önce yanıtsız kalabilecek ping sayısı. Varsayılan 3.
.Logger(logger) - Bağlantı yaşam döngüsü olayları için bir *slog.Logger. Ayarlanmazsa ORBITFLARE_LOG ile denetlenir.

Kullanılabilir abonelikler

SlotSubscribe(ctx)

Bir slot her işlendiğinde, onaylandığında veya finalize edildiğinde tetiklenir.
Her olay; slot, parent ve root alanları olan bir JSON’dur:

AccountSubscribe(ctx, address, commitment)

Belirtilen hesabın verisi değiştiğinde tetiklenir.
lamports, owner ve executable bayrağı ile base64 kodlu hesap verisi döndürür.

LogsSubscribe(ctx, mentions, commitment)

Verilen adresleri anan işlemler için tetiklenir. Tüm işlemler için boş bir dilim geçin.
Tüm günlükler:

SignatureSubscribe(ctx, signature, commitment)

Bir işlem verilen commitment düzeyine ulaştığında bir kez tetiklenir. Az önce gönderdiğiniz bir işlemi onaylamak için kullanışlıdır.

Olayları okuma

Tüm abonelikler bir *ws.Subscription döndürür. Sonraki olayı almak için Next(ctx) çağırın:
Next(ctx), (json.RawMessage, bool) döndürür. ok false olduğunda abonelik sona ermiştir (context iptal edildi veya istemci kapandı).

Abonelikten çıkma

Bu, sunucuya bir abonelikten çıkma mesajı gönderir. Bunu çağırmadan bir aboneliği okumayı bırakırsanız, SDK sahipsiz aboneliği tespit eder ve abonelikten çıkmayı otomatik gönderir.

Birden çok abonelik

Tüm abonelikler tek bir WebSocket bağlantısında çalışır. SDK, bildirimleri içeride doğru aboneliğe yönlendirir.
Mevcut abonelikler çalışırken istediğiniz zaman yeni abonelikler ekleyebilirsiniz.

Yeniden bağlanma

Bağlantı koparsa, arka plan goroutine’i üstel backoff ile yeniden bağlanır ve her şeyi otomatik olarak yeniden abone eder. Next(ctx) çağrılarınız çalışmaya devam eder - bağlantı geri geldiğinde olaylar kaldığı yerden sürer.

Tam örnek

Slot güncellemelerine ve USDC hesap değişikliklerine abone olup canlı bir akış yazdıran bir izleme programı.