Πόσο καιρό μπορεί να μείνει ανοιχτή μια σήραγγα CONNECT;
Διαχωρίστε τη διάρκεια ζωής μιας εγκατεστημένης σήραγγας από την επαναχρησιμοποίηση απαντήσεων HTTP, τις πολιτικές αδράνειας του μεσολαβητή και την ίδια τη συνεδρία της εφαρμογής προορισμού.
Το CONNECT δεν υπόσχεται σήραγγα ανοιχτή επ' αόριστον. Μετά από μια επιτυχή ανταλλαγή, η σύνδεση μεταφέρει συνεχή ροή byte προς τον ζητούμενο κεντρικό υπολογιστή και θύρα. Μπορεί να μεταφέρει πολλαπλές ανταλλαγές μέσα σε συνεδρία TLS του προορισμού, για όσο διάστημα οι συμμετέχοντες και το δίκτυο την κρατούν ανοιχτή.
Δύο όρια του μεσολαβητή συμπεριφέρονται διαφορετικά: η κίνηση μπορεί να εμποδίσει τη λήξη ενός χρονομέτρου αδράνειας, αλλά δεν μπορεί να παρατείνει ένα απόλυτο όριο διάρκειας ζωής. Και το πρωτόκολλο του προορισμού έχει λόγο. Ένας εσωτερικός πελάτης HTTP μπορεί να κλείσει τη σύνδεσή του· μια εφαρμογή WebSocket μπορεί να τερματίσει τη συνεδρία της. Ο μεσολαβητής δεν μπορεί να κρατήσει ζωντανή εκείνη τη συνεδρία προορισμού μετά.
Μια σήραγγα είναι δεμένη με τον στόχο της. Μόλις ρέουν τα byte της σήραγγας, η σύνδεση δεν είναι πλέον ένα συνηθισμένο κανάλι αιτημάτων HTTP στο οποίο εκδίδεται άλλο CONNECT για άσχετο προορισμό. Ο πελάτης χρειάζεται άλλη σύνδεση ή άλλη σήραγγα που διαχειρίζεται η βιβλιοθήκη του.
Για μια επίμονη ροή, σχεδιάστε επανασυνδέσεις με τους μηχανισμούς ζωντάνιας και σύνδεσης που υποστηρίζει ο πελάτης. Αν κλείνει μετά από σιωπή, μια πολιτική αδράνειας είναι χρήσιμη ένδειξη· αν κλείνει μετά από σταθερή διάρκεια παρά την κίνηση, ερευνήστε αντ' αυτού ένα απόλυτο όριο. Για ροή WebSocket, επαναφέρετε και την κατάσταση της εφαρμογής μετά την επανασύνδεση.