Çalıştığı bilinen bir abonelikle başlayın
slotSubscribe her slotta, saniyede yaklaşık beş kez tetiklenir, bu yüzden bağlantının kendisinin çalışıp çalışmadığını neredeyse anında gösterir. wscat aracını npm install -g wscat ile kurun, ardından:
Bağlantı reddedildi
Kimlik doğrulama WebSocket el sıkışması sırasında yapılır. Başarısız olduğunda sunucu, protokol değiştirmek yerine yükseltme isteğine normal bir HTTP hatası ve bir JSON gövdesiyle yanıt verir. Birçok WebSocket kütüphanesi yalnızca “unexpected server response: 403” bildirir ve gövdeyi atar, bu yüzden gerçek nedeni görmek için el sıkışmayı curl ile kontrol edin:HTTP/1.1 101 Switching Protocols, kimlik doğrulamanın geçtiği anlamına gelir. Aksi halde:
Kontrol edilecek diğer şeyler:
- Ana bilgisayar çözümleniyor mu. WebSocket RPC ana bilgisayarlarında çalışır:
wss://{region}.rpc.orbitflare.com.wss://mainnet.rpc...veyawss://global.rpc...diye bir ana bilgisayar yoktur. Liste için Altyapı sayfasına bakın. - URL
wss://kullanıyor mu. Bir WebSocket istemcisinehttps://URL’si vermek, istek OrbitFlare’e ulaşmadan başarısız olur. - Yalnızca TypeScript:
Cannot find package 'ws', isteğe bağlı eş bağımlılığın eksik olduğu anlamına gelir.npm install wsçalıştırın.
Bağlı ama güncelleme gelmiyor
Sunucu her aboneliği sayısal bir kimlikle onaylar. Hiç kimlik almazsanız istek reddedilmiştir ve yanıt nedenini söyler:- Hesap değişmiyor.
accountSubscribeyalnızca hesabın verisi veya lamport’ları değiştiğinde tetiklenir. Yoğun olduğunu bildiğiniz bir hesapla test edin, örneğin her slotta değişenSysvarC1ock11111111111111111111111111111111. - Filtre hiçbir şeyle eşleşmiyor.
programSubscribevelogsSubscribeiçin, hiçbir işlemde görünmeyen bir adres olay üretmez. Önce adresi bir explorer’da kontrol edin. - İmza eski.
signatureSubscribeyalnızca yakın tarihli işlemleri bilir. Birkaç dakikadan eski her şey için bunun yerinesearchTransactionHistory: trueilegetSignatureStatusesçağırın. Bkz. Bir işlemin onaylanmasını bekleyin.
Kopan bağlantılar
Boştaki bağlantılar uyarısız kapanır
Trafiği olmayan bir bağlantı sonunda düşürülür ve bir kapatma çerçevesiyle değil aniden kapatılır, bu yüzden istemciniz boş bir nedenle1006 kodunu görür. Bağlantıyı her 20 ila 30 saniyede bir WebSocket ping çerçeveleri göndererek canlı tutun:
Yeniden bağlandıktan sonra abonelikler kaybolur
Abonelikler bir bağlantıya aittir. Bağlantı koptuğunda abonelikler de gider ve yeni bir bağlantı hiç aboneliksiz başlar. Nelere abone olduğunuzun listesini tutun ve yeniden bağlandıktan sonra bu istekleri tekrar gönderin. Abonelik kimliklerinin değiştiğini unutmayın. SDK’lar abonelikleri takip eder ve otomatik olarak yeniden abone olur.sub.next() döngünüz yeniden bağlantılar boyunca çalışmaya devam eder.
Abonelikten çıkma başarısız oluyor
Invalid subscription id., bu kimliğin bu bağlantıda bulunmadığı anlamına gelir. Genellikle bağlantı değiştirilmiştir ve kimlik eski bağlantıya aittir. Görmezden gelmek güvenlidir.