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

Βρείτε το αίτημα που μεταφέρει τα μηνύματα

Φιλτράρετε κατά τύπο μόλις ηρεμήσει η σελίδα: ένα WebSocket εμφανίζεται ως δική του καταχώριση, μια ροή γεγονότων μένει ανοιχτή με αυξανόμενη απάντηση και ένα long poll επαναλαμβάνεται σε τακτικό διάστημα. Καταγράψτε το σχήμα, τον κεντρικό υπολογιστή, τη θύρα και την κατάσταση για όποιο μεταφέρει τις ενημερώσεις. Σημειώστε αν ξεκίνησε πριν ή μετά τη σύνδεση, γιατί ένα μεταφορικό που ανοίγει πριν την ταυτοποίηση είναι συνήθως διαφορετικός σχεδιασμός από ένα που ανοίγει μετά. Διαβάστε τις κεφαλίδες του αιτήματος αναβάθμισης ή του αποδεκτού τύπου περιεχομένου, γιατί προσδιορίζουν το μεταφορικό που επέλεξε πραγματικά η αναπτυγμένη σελίδα.

Παλιές αναρτήσεις φόρουμ περιγράφουν μεταφορικά που τα προϊόντα σταμάτησαν να χρησιμοποιούν χρόνια πριν, οπότε εμπιστευτείτε ό,τι κατέγραψε το πρόγραμμα περιήγησης και όχι το άρθρο. Αν η καταχώριση λείπει εντελώς, ο κώδικας του πελάτη μπορεί να μην επιχείρησε ποτέ σύνδεση, κάτι που υποδεικνύει προγενέστερη αποτυχία σεναρίου ή ρύθμισης. Μια σελίδα που φορτώνει αποδεικνύει μόνο ότι το έγγραφο έφτασε, και αυτή η διάκριση καθορίζει αν κάνετε καθόλου αποσφαλμάτωση δικτύου.

Η ρύθμιση, η παράδοση και η διάρκεια ζωής αποτυγχάνουν διαφορετικά

Ένα WebSocket ανοίγει με αναβάθμιση HTTP που απαντάται με κατάσταση 101, και όλα μετά είναι πλαισιωμένα μηνύματα αντί για ανάκτηση σελίδων, δύο στάδια που το RFC 6455 κρατά ρητά χωριστά. Μια ροή γεγονότων απαντά με τύπο περιεχομένου ροής και κρατά ανοιχτό το σώμα της απάντησης. Και τα δύο μπορούν να αποτύχουν να ανοίξουν, να ανοίξουν και να μην παραδώσουν τίποτα, ή να ανοίξουν, να παραδώσουν και μετά να πεθάνουν ήσυχα.

wscat -c wss://chat.example.com/socket -H "Origin: https://chat.example.com"
curl -N -H "Accept: text/event-stream" https://chat.example.com/events

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

Ο κωδικός 1006 σημαίνει ότι ο υποδοχέας έκλεισε χωρίς πλαίσιο κλεισίματος, που είναι πώς φαίνεται ένας μεσάζων ή ένα timeout αδράνειας από μέσα στο πρόγραμμα περιήγησης. Ένας παλμός VPN δεν αποδεικνύει ότι η εσωτερική συνεδρία της εφαρμογής είναι ακόμα ζωντανή.

Ο ζωντανός κεντρικός υπολογιστής είναι ξεχωριστός προορισμός

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

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

Διορθώστε τη λίστα προορισμών, όχι τους ελέγχους ασφαλείας

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

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

Καταγράψτε αρκετά για την παράδοση

Το χρήσιμο τεκμήριο είναι σύντομο: URL σελίδας, ζωντανό τελικό σημείο, αποτέλεσμα χειραψίας, ώρα πρώτης αποτυχίας και αν επιχειρήθηκε επανασύνδεση. Προσθέστε το όνομα του προφίλ VPN και το δίκτυο στο οποίο ήσασταν, και οποιοσδήποτε αναγνώστης μπορεί να αναπαραγάγει τη δοκιμή χωρίς έξι ερωτήσεις. Αποκρύψτε cookies, κεφαλίδες εξουσιοδότησης και σώματα μηνυμάτων, και προτιμήστε ένα στιγμιότυπο της στήλης χρόνου από μια πλήρη εξαγωγή αρχείου. Τα πλαίσια και τα αρχεία δικτύου μπορούν να περιέχουν ιδιωτικά μηνύματα και διακριτικά συνεδρίας, οπότε εξετάστε πριν επισυνάψετε οτιδήποτε.

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

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