Η επιστροφή κλήσης επανασύνδεσης εκτελείται και το νέο socket ανοίγει. Αυτό είναι ανάκτηση μεταφοράς. Δεν σημαίνει απαραίτητα ότι οι συνδρομές σας, οι επιβεβαιώσεις μηνυμάτων ή η συνεδρία της εφαρμογής συνεχίστηκαν εκεί όπου σταμάτησε η προηγούμενη σύνδεση.

Ακόμη και το ίδιο τελικό σημείο διαμεσολαβητή μπορεί να παραγάγει νέα εξερχόμενη σύνδεση. Μια αλλαγμένη εξερχόμενη IP μπορεί επίσης να ενεργοποιήσει την πολιτική συνεδρίας του προορισμού. Αντιμετωπίστε το νέο socket ως νέα σύνδεση και ακολουθήστε την τεκμηριωμένη ανταλλαγή ανάκτησης της εφαρμογής. Αποφασίστε αν η ροή εργασίας πρέπει να διατηρήσει τη διαδρομή της μέσω διαμεσολαβητή κατά την επανασύνδεση.

Κρατήστε λίγο περισσότερο από το τελευταίο URL

Η χρήσιμη κατάσταση ανάκτησης μπορεί να περιλαμβάνει εξουσιοδοτημένη ταυτότητα συνεδρίας, τις επιθυμητές συνδρομές, το αναγνωριστικό του τελευταίου επιβεβαιωμένου συμβάντος και λειτουργίες που περιμένουν ακόμη επιβεβαίωση. Αυτά τα πεδία ανήκουν στο πρωτόκολλο της εφαρμογής· το WebSocket δεν ορίζει καθολικό διακριτικό συνέχισης.

Αποφασίστε αν θα συνεχίσετε από δείκτη, θα λάβετε νέο στιγμιότυπο ή θα δεχτείτε κενό. Αν μια πηγή συμβάντων δεν προσφέρει διεπαφή αναπαραγωγής, η ταχύτερη επανασύνδεση δεν μπορεί να αποδείξει ότι δεν χάθηκαν μηνύματα.

Η αποστολή δύο φορές μπορεί να σημαίνει εκτέλεση δύο φορές

Ένα μήνυμα που μπήκε σε τοπική ουρά πριν από μια αποσύνδεση μπορεί να μην έφυγε ποτέ από τον πελάτη. Ένα άλλο μπορεί να έφτασε στον διακομιστή ενώ η επιβεβαίωσή του χάθηκε. Η τυφλή επαναποστολή κάθε μη επιβεβαιωμένης εντολής αντιμετωπίζει τις δύο περιπτώσεις ως ίδιες.

Χρησιμοποιήστε τα αναγνωριστικά αιτημάτων της υπηρεσίας, την υποστήριξη idempotency ή τον μηχανισμό συμβιβασμού όπου διατίθενται. Μια επανασύνδεση μεταφοράς δεν μπορεί να κάνει μια ενέργεια της εφαρμογής αναστρέψιμη ούτε να την αποδιπλοποιήσει αυτόματα.

Κρατήστε τις προσπάθειες επανασύνδεσης φραγμένες και με ρυθμό σύμφωνο με την πολιτική της εφαρμογής. Η RFC 6455 συνιστά υποχώρηση μετά από μη φυσιολογικό κλείσιμο· ένα σύνολο πελατών που επαναλαμβάνουν αμέσως μπορεί να αυξήσει το φορτίο της διακοπής.

Καταγράψτε ποια διαδρομή μέσω διαμεσολαβητή επέλεξε κάθε προσπάθεια, αλλά κρατήστε την ανάκτηση διαδρομής χωριστή από την ανάκτηση της εφαρμογής. Το «συνδεθήκαμε ξανά» είναι χρήσιμη απόδειξη. Το «φτάσαμε και είμαστε έτοιμοι να υποβάλουμε περισσότερη εργασία» απαιτεί την πρόσθετη ανταλλαγή της εφαρμογής που το αποδεικνύει.

Σχετικά άρθρα