Μετάβαση στο περιεχόμενο

Σύνδεση σε απομακρυσμένο διακομιστή

Κάθε πελάτης λειτουργεί ως μηχανή απόδοσης πάνω από έναν cc_server που κατέχει τα δεδομένα. Η εφαρμογή υπολογιστή μπορεί να εκτελεί έναν μέσα της· η εφαρμογή web στο app.usectrl.dev δεν μπορεί, γιατί μια καρτέλα προγράμματος περιήγησης δεν μπορεί να φιλοξενήσει διακομιστή. Σε κάθε περίπτωση, αυτός ο οδηγός στρέφει έναν πελάτη σε έναν διακομιστή που εκτελείται αλλού — ένα μικρό μηχάνημα, ένα VM στο cloud, έναν διακομιστή build.

  • Έναν ενεργό cc_server. Αν δεν έχετε, δείτε Εκτέλεση headless διακομιστή.
  • Είτε τις τρεις τιμές σύζευξης που εξέδωσε ο διακομιστής — το URL του διακομιστή (ws://…/rpc ή wss://…/rpc), ένα αναγνωριστικό συσκευής και ένα κλειδί σύζευξης — είτε έναν μοναδικό κωδικό πρόσκλησης από έναν διαχειριστή χώρου εργασίας. Η εξαργύρωση μιας πρόσκλησης δημιουργεί τον χρήστη σας, καταγράφει τη συμμετοχή σας και εκδίδει για λογαριασμό σας το διαπιστευτήριο αυτού του πελάτη, οπότε δεν χειρίζεστε ποτέ αναγνωριστικό συσκευής ή κλειδί.

Βεβαιωθείτε ότι ο διακομιστής είναι προσβάσιμος

Ενότητα με τίτλο «Βεβαιωθείτε ότι ο διακομιστής είναι προσβάσιμος»

Ένας τοπικός διακομιστής δεν χρειάζεται τίποτα: το ws://localhost:9030/rpc λειτουργεί και από την εφαρμογή υπολογιστή και από το πρόγραμμα περιήγησης, επειδή τα προγράμματα περιήγησης θεωρούν το loopback αξιόπιστη προέλευση.

Ένας διακομιστής σε άλλο μηχάνημα είναι διαφορετική περίπτωση. Το app.usectrl.dev σερβίρεται μέσω HTTPS, οπότε το πρόγραμμα περιήγησης θα ανοίξει υποδοχή wss:// μόνο με πιστοποιητικό που εμπιστεύεται ήδη — και ο cc_server αρνείται εξαρχής να δεσμεύσει διεύθυνση εκτός loopback χωρίς TLS. Δώστε του ένα από τα εξής:

  • ένα πιστοποιητικό απευθείας, με --tls-cert και --tls-key
  • έναν αντίστροφο διαμεσολαβητή που τερματίζει το TLS, με τον διακομιστή να ξεκινά με --insecure (απλό κείμενο πίσω από τον διαμεσολαβητή, μόνο σε δίκτυο που εμπιστεύεστε)
  • μια σήραγγα ή VPN που παρέχει το πιστοποιητικό — Tailscale, cloudflared ή παρόμοιο. Η διαδρομή Ρυθμίσεις → Διακομιστής → Σύνδεση και κατάσταση περιλαμβάνει τη συμμετοχή στην ενσωματωμένη σήραγγα στην ενότητα Κοινή χρήση αυτού του διακομιστή.

Δύο ρυθμίσεις στην πλευρά του διακομιστή περνούν εύκολα απαρατήρητες. Πίσω από διαμεσολαβητή, NAT ή σήραγγα, ορίστε το --public-url στη διεύθυνση που πρέπει να καλέσουν πραγματικά οι πελάτες — προεπιλέγεται η τοπική δέσμευση, οπότε χωρίς αυτό οι πελάτες δοκιμάζουν λάθος κεντρικό υπολογιστή. Και αν φιλοξενείτε το δικό σας αντίγραφο του build web, προσθέστε την προέλευσή του στο --allowed-origins, το οποίο προεπιλεγμένα επιτρέπει μόνο το https://app.usectrl.dev· το loopback και οι εγγενείς πελάτες επιτρέπονται πάντα.

Σε νέα εγκατάσταση:

  1. Εκκινήστε το Control Center. Η οθόνη πρώτης εκτέλεσης ρωτά Πώς να εκτελείται το Control Center;
  2. Αντί για Εκτέλεση σε αυτή την εφαρμογή, συμπληρώστε τα πεδία σύνδεσης: το URL του διακομιστή, και είτε έναν κωδικό πρόσκλησης είτε ένα αναγνωριστικό συσκευής και κλειδί σύζευξης.
  3. Κάντε κλικ στο Σύνδεση. Το Control Center καλεί τον διακομιστή και προσγειώνεται στα εισερχόμενα του χώρου εργασίας.

Σε έναν υπολογιστή που εκτελεί ήδη δικό του διακομιστή:

  1. Ανοίξτε Ρυθμίσεις → Διακομιστής → Σύνδεση και κατάσταση.
  2. Κάντε κλικ στο Προσθήκη διακομιστή. Εισαγάγετε το URL του διακομιστή (wss://host:9030/rpc) και είτε έναν κωδικό πρόσκλησης είτε ένα αναγνωριστικό συσκευής και κλειδί σύζευξης. Το κουμπί στο τέλος του πεδίου URL ανακαλύπτει παρουσίες cc_server στο LAN ή στο tailnet σας.
  3. Κάντε κλικ στο Σύνδεση και μετά στην Εναλλαγή στη γραμμή του νέου διακομιστή.

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

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

Το build web είναι πάντα απομακρυσμένο.

  1. Ανοίξτε το app.usectrl.dev, ή το δικό σας αντίγραφο του build web.
  2. Εισαγάγετε το URL του διακομιστή και είτε έναν κωδικό πρόσκλησης είτε ένα αναγνωριστικό συσκευής και κλειδί σύζευξης.
  3. Ο πελάτης καλεί τον διακομιστή και αποδίδει το ίδιο περιβάλλον που αποδίδει και η εφαρμογή υπολογιστή.

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

Ο πελάτης web διαβάζει και γράφει στον ίδιο διακομιστή με την εφαρμογή υπολογιστή, αλλά μερικές επιφάνειες χρειάζονται εγγενές παράθυρο ή τις ίδιες τις συσκευές του μηχανήματος:

  • χωρίς αναδυόμενες ειδοποιήσεις του λειτουργικού συστήματος, ήχους ειδοποιήσεων ή λωρίδα banner περιβάλλοντος (το κέντρο ειδοποιήσεων εντός της εφαρμογής λειτουργεί ακόμη)
  • χωρίς ανακάλυψη διακομιστών στο LAN ή στο tailnet στο παράθυρο Προσθήκη διακομιστή
  • χωρίς ενσωματωμένο πρόγραμμα ανάγνωσης άρθρων — τα άρθρα της ροής ειδήσεων ανοίγουν σε νέα καρτέλα
  • χωρίς επανεκτέλεση σύνοψης σύσκεψης και χωρίς ακύρωση μιας σύνοψης που εκτελείται

Δύο λειτουργίες συμπεριφέρονται διαφορετικά αντί να απουσιάζουν. Η εγγραφή σύσκεψης λειτουργεί στο πρόγραμμα περιήγησης, καταγράφοντας το μικρόφωνό σας μαζί με κοινή χρήση οθόνης που περιλαμβάνει κομμάτι ήχου. Το Άνοιγμα στο IDE λειτουργεί επίσης, αλλά ζητά από τον διακομιστή να εκκινήσει τον επεξεργαστή στην οθόνη του διακομιστή, οπότε το κουμπί κρύβεται απέναντι σε έναν headless κεντρικό υπολογιστή χωρίς εγκατεστημένους επεξεργαστές.

  • Η σύνδεση λήγει σε χρονικό όριο: ο διακομιστής πρέπει να είναι προσβάσιμος από τον πελάτη. Ελέγξτε τη δέσμευση (--bind any), ότι η θύρα είναι ανοιχτή και ότι το --public-url δηλώνει τη διεύθυνση που μπορεί πραγματικά να καλέσει ο πελάτης. Πάνω από το ανοιχτό internet, το TLS είναι υποχρεωτικό — μια δέσμευση εκτός loopback σε απλό κείμενο απορρίπτεται κατά την εκκίνηση, εκτός αν ο διακομιστής ξεκίνησε με --insecure πίσω από διαμεσολαβητή.
  • Το πρόγραμμα περιήγησης αρνείται να συνδεθεί, αλλά ένας εγγενής πελάτης λειτουργεί: η προέλευση του προγράμματος περιήγησης δεν βρίσκεται στη λίστα --allowed-origins του διακομιστή. Η προεπιλογή επιτρέπει μόνο το https://app.usectrl.dev (συν το loopback).
  • Το κλειδί σύζευξης απορρίφθηκε: εκτελέστε ξανά το cc_server pair στον διακομιστή για να εναλλάξετε το κλειδί αυτής της συσκευής και μετά εισαγάγετε το νέο. Μια συσκευή που έχει ανακληθεί βρίσκει το διαπιστευτήριό της να λείπει και αποτυγχάνει κλειστά· η ανάκληση ρίχνει μια ζωντανή συνεδρία μέσα σε δευτερόλεπτα.
  • Λάθος χώρος εργασίας: ο χώρος εργασίας είναι μέρος του URL (/workspaces/:workspaceId/…) και ταξιδεύει με κάθε κλήση, οπότε η εναλλαγή χώρων εργασίας σε έναν πελάτη αλλάζει μόνο τη δική σας προβολή. Μπορείτε να φτάσετε μόνο σε χώρους εργασίας των οποίων είστε μέλος — οτιδήποτε άλλο απορρίπτεται με «Not a member of this workspace». Δείτε Χώροι εργασίας και απομόνωση.