Proxy'li WebSocket yeniden bağlantısından sonra oturumu da geri yükleyin
Yeni bir proxy'li WebSocket bağlantısı kurduktan sonra uygulama aboneliklerini ve belirsiz mesaj durumunu bilinçli olarak geri yükleyin.
Yeniden bağlanma geri çağrısı çalışır ve yeni soket açılır. Bu, taşıma katmanının kurtarılmasıdır. Aboneliklerinizin, mesaj onaylarınızın veya uygulama oturumunuzun önceki bağlantının durduğu yerden devam ettiği anlamına gelmez.
Aynı proxy uç noktası bile yeni bir giden bağlantı üretebilir. Değişen çıkış IP'si, hedefin kendi oturum ilkesini de tetikleyebilir. Yeni soketi yeni bir bağlantı olarak ele alın ve uygulamanın belgelenmiş kurtarma alışverişini izleyin. Yeniden bağlanırken iş akışının proxy rotasını koruması gerekip gerekmediğine karar verin.
Son URL'den biraz daha fazlasını saklayın
Yararlı kurtarma durumu, yetkilendirilmiş bir oturum kimliği, istenen abonelikler, son onaylanan olay tanımlayıcısı ve hâlâ onay bekleyen işlemleri içerebilir. Bu alanlar uygulama protokolüne aittir; WebSocket evrensel bir devam belirteci tanımlamaz.
Bir imleçten devam etmeye, yeni bir anlık görüntü almaya veya bir boşluğu kabul etmeye karar verin. Bir olay kaynağı yeniden oynatma arayüzü sunmuyorsa, daha hızlı yeniden bağlanmak hiçbir mesajın kaçmadığını kanıtlayamaz.
İki kez göndermek iki kez yapmak anlamına gelebilir
Bir kopmadan önce yerel olarak kuyruğa alınan mesaj istemciden hiç çıkmamış olabilir. Bir diğeri, onayı kaybolurken sunucuya ulaşmış olabilir. Onaylanmamış her komutu körü körüne yeniden göndermek bu iki durumu aynı kabul eder.
Mevcut olduğunda hizmetin istek tanımlayıcılarını, idempotency desteğini veya mutabakat mekanizmasını kullanın. Taşıma katmanının yeniden bağlanması bir uygulama eylemini geri alınabilir kılamaz veya kopyalarını otomatik olarak temizleyemez.
Yeniden bağlanma denemelerini sınırlı tutun ve tempoyu uygulamanın ilkesine göre ayarlayın. RFC 6455 anormal kapanıştan sonra geri çekilmeyi önerir; hemen yeniden deneyen bir istemci filosu kesintinin yükünü artırabilir.
Her denemenin hangi proxy rotasını seçtiğini kaydedin, ancak rota kurtarmayı uygulama kurtarmasından ayrı tutun. "Yeniden bağlandı" yararlı bir kanıttır. "Yetiştik ve daha fazla iş göndermeye hazırız" bunu tesis eden ek uygulama alışverişini gerektirir.