Γιατί μια αποτυχία διαμεσολαβητή SockJS μπορεί να εμφανιστεί μόνο μετά την εναλλακτική διαδρομή
Η διαδρομή WebSocket και η εναλλακτική διαδρομή XHR μπορεί να χρησιμοποιούν διαφορετικούς πελάτες HTTP. Προσδιορίστε το μεταφορικό μέσο που αποτυγχάνει πριν αλλάξετε τις ρυθμίσεις διαμεσολαβητή του.
Όταν το WebSocket λειτουργεί σε ένα δίκτυο αλλά το SockJS αποτυγχάνει σε άλλο, το δεύτερο δίκτυο μπορεί να έχει ενεργοποιήσει την εναλλακτική διαδρομή XHR. Αυτό μπορεί να αλλάξει την υλοποίηση HTTP που εκτελεί τα αιτήματα — και επομένως τη διαμόρφωση διαμεσολαβητή που χρησιμοποιείται.
Εντοπίστε το πρώτο αποτυχημένο URL και το μεταφορικό μέσο που επέλεξε. Το SockJS μπορεί να κάνει ένα αίτημα πληροφοριών HTTP πριν επιλέξει μεταφορικό μέσο· η χειραψία WebSocket και τα επόμενα αιτήματα δημοσκόπησης είναι ξεχωριστές λειτουργίες. Μια διαμόρφωση χειραψίας που λειτουργεί δεν αποδεικνύει τη διαδρομή που χρησιμοποιείται για καθένα από αυτά.
Στον πελάτη Java του Spring, το RestTemplateXhrTransport δέχεται ένα ρυθμισμένο RestTemplate. Το εργοστάσιο αιτημάτων και ο υποκείμενος πελάτης HTTP παρέχουν τη διαδρομή διαμεσολαβητή και την πιστοποίηση που υποστηρίζει η εναλλακτική διαδρομή. Για Spring 6 με HttpClient 5, ρυθμίστε το πραγματικό εργοστάσιο αιτημάτων αυτού του RestTemplate. Αν αυτή η υλοποίηση χρησιμοποιεί στοιχεία Apache HTTP, η γενιά της πρέπει να ταιριάζει με την ενσωμάτωση.
Ο πελάτης WebSocket έχει τις δικές του τεκμηριωμένες ρυθμίσεις σύνδεσης. Οι ιδιότητες διαμεσολαβητή JVM επηρεάζουν μια διαδρομή μόνο αν ο συγκεκριμένος πελάτης της τις διαβάζει. Συγκρίνετε τα περιβάλλοντα που λειτουργούν και αποτυγχάνουν κατά μεταφορικό μέσο, υλοποίηση πελάτη, επιλεγμένο διαμεσολαβητή και πρώτο σφάλμα. Αν αποτυγχάνει μόνο το XHR, ακολουθήστε τη διαδρομή, την πιστοποίηση και τις μακροχρόνιες αποκρίσεις του αντί να αλλάζετε επανειλημμένα τις ρυθμίσεις του λειτουργικού πελάτη WebSocket.