หลังเชื่อมต่อ WebSocket ผ่านพร็อกซีใหม่ ให้กู้คืนเซสชันด้วย
กู้คืนการสมัครรับข้อมูลของแอปพลิเคชันและสถานะข้อความที่ไม่แน่นอนอย่างตั้งใจหลังจากสร้างการเชื่อมต่อ WebSocket ใหม่ผ่านพร็อกซี
คอลแบ็กการเชื่อมต่อใหม่ทำงานและซ็อกเก็ตใหม่เปิดขึ้น นั่นคือการกู้คืนชั้นการรับส่งข้อมูล ไม่ได้หมายความว่าการสมัครรับข้อมูล การตอบรับข้อความ หรือเซสชันของแอปพลิเคชันของคุณดำเนินต่อไปจากจุดที่การเชื่อมต่อก่อนหน้าหยุด
แม้แต่ปลายทางพร็อกซีเดียวกันก็อาจสร้างการเชื่อมต่อขาออกใหม่ได้ IP ขาออกที่เปลี่ยนไปอาจกระตุ้นนโยบายเซสชันของปลายทางเองด้วย ถือว่าซ็อกเก็ตใหม่เป็นการเชื่อมต่อใหม่และปฏิบัติตามการแลกเปลี่ยนการกู้คืนที่แอปพลิเคชันจัดทำเอกสารไว้ ตัดสินใจว่าเวิร์กโฟลว์ควรคงเส้นทางพร็อกซีไว้หรือไม่เมื่อเชื่อมต่อใหม่
เก็บไว้มากกว่าแค่ URL สุดท้ายเล็กน้อย
สถานะการกู้คืนที่เป็นประโยชน์อาจรวมถึงตัวตนเซสชันที่ได้รับอนุญาต การสมัครรับข้อมูลที่ต้องการ ตัวระบุเหตุการณ์สุดท้ายที่ยืนยันแล้ว และการดำเนินการที่ยังรอการตอบรับ ฟิลด์เหล่านั้นเป็นของโปรโตคอลแอปพลิเคชัน WebSocket ไม่ได้กำหนดโทเค็นสำหรับดำเนินการต่อแบบสากล
ตัดสินใจว่าจะดำเนินการต่อจากเคอร์เซอร์ ขอสแนปช็อตใหม่ หรือยอมรับช่องว่าง หากแหล่งเหตุการณ์ไม่มีอินเทอร์เฟซสำหรับเล่นซ้ำ การเชื่อมต่อใหม่ที่เร็วขึ้นไม่อาจพิสูจน์ได้ว่าไม่มีข้อความใดสูญหาย
การส่งสองครั้งอาจหมายถึงการทำสองครั้ง
ข้อความที่ถูกจัดคิวในเครื่องก่อนการตัดการเชื่อมต่ออาจไม่เคยออกจากไคลเอนต์เลย อีกฉบับอาจไปถึงเซิร์ฟเวอร์ในขณะที่การตอบรับสูญหาย การส่งคำสั่งที่ยังไม่ได้รับการยืนยันซ้ำอย่างไม่ลืมหูลืมตาจะถือสองกรณีนี้ว่าเหมือนกัน
ใช้ตัวระบุคำขอของบริการ การรองรับ idempotency หรือกลไกการกระทบยอดเมื่อมีให้ใช้ การเชื่อมต่อใหม่ของชั้นรับส่งไม่สามารถทำให้การกระทำของแอปพลิเคชันย้อนกลับได้หรือลบข้อมูลซ้ำโดยอัตโนมัติ
จำกัดความพยายามเชื่อมต่อใหม่และกำหนดจังหวะตามนโยบายของแอปพลิเคชัน RFC 6455 แนะนำให้ถอยกลับหลังการปิดที่ผิดปกติ กลุ่มไคลเอนต์ที่ลองใหม่ทันทีอาจเพิ่มภาระของการขัดข้อง
บันทึกว่าแต่ละครั้งเลือกเส้นทางพร็อกซีใด แต่แยกการกู้คืนเส้นทางออกจากการกู้คืนแอปพลิเคชัน “เชื่อมต่อใหม่แล้ว” เป็นหลักฐานที่มีประโยชน์ “ตามทันแล้วและพร้อมส่งงานเพิ่ม” ต้องมีการแลกเปลี่ยนแอปพลิเคชันเพิ่มเติมที่ยืนยันสิ่งนั้น