1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> KEVIN SCHMID: Γεια σε όλους. 3 00:00:09,710 --> 00:00:12,640 Καλώς ήρθατε στο σεμινάριο CS50 για Node.js. 4 00:00:12,640 --> 00:00:13,955 Το όνομά μου είναι ο Kevin. 5 00:00:13,955 --> 00:00:15,580 Είμαι TF CS50. 6 00:00:15,580 --> 00:00:17,650 Και είμαι κάπως σαν πραγματικά ενθουσιασμένος σχετικά με αυτό το σεμινάριο. 7 00:00:17,650 --> 00:00:20,430 Νομίζω ότι Node.js είναι πολύ δροσερό. 8 00:00:20,430 --> 00:00:24,200 Ελπίζω ότι αυτό το σεμινάριο μπορεί να χρησιμοποιηθεί ως ένα καλό, υποθέτω, εφαλτήριο για 9 00:00:24,200 --> 00:00:26,380 μερικά από τα τελευταία έργα σας, εάν σας ενδιαφέρει, χρησιμοποιώντας 10 00:00:26,380 --> 00:00:27,630 κάτι σαν Node.js. 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> Θα είδος ξεκινήσει το σεμινάριο εκτός από απλά μιλάμε για ένα μικρό κομμάτι της 13 00:00:33,320 --> 00:00:36,970 είδους υπόβαθρο επεκτασιμότητα προοπτικές της Node.js, και στη συνέχεια 14 00:00:36,970 --> 00:00:39,240 θα προχωρήσουμε σε κάποια παραδείγματα κώδικα. 15 00:00:39,240 --> 00:00:42,340 Και θα έχω τον κώδικα σε ένα δικτυακό τόπο, και μπορείτε να κοιτάξετε τον κώδικα. 16 00:00:42,340 --> 00:00:45,475 Και μετά το σεμινάριο, θα ταξινομήσετε συζήτηση σχετικά με το πώς μπορείτε να ρυθμίσετε το Node.js 17 00:00:45,475 --> 00:00:48,220 στον υπολογιστή σας. 18 00:00:48,220 --> 00:00:48,710 >> OK. 19 00:00:48,710 --> 00:00:49,760 Οπότε ας ξεκινήσουμε. 20 00:00:49,760 --> 00:00:53,700 Έτσι υποθέτω ότι απλά θέλω να μιλήσω για web servers, πραγματικά, για πρώτη φορά. 21 00:00:53,700 --> 00:00:59,730 Και για να ξεκινήσουμε αυτή τη συζήτηση, εγώ ουσιαστικά ένα διάγραμμα το οποίο είναι από 22 00:00:59,730 --> 00:01:04,269 Το βιβλίο που χρησιμοποιείται για CS61, η οποία βασικά δείχνει την αλληλεπίδραση 23 00:01:04,269 --> 00:01:08,510 ανάμεσα σε μια διαδικασία πελάτη, όπως το web περιήγησης ή σαν client στόχος σας ή 24 00:01:08,510 --> 00:01:11,340 κάτι τέτοιο, και ένα web server. 25 00:01:11,340 --> 00:01:15,150 Έτσι, αυτό το είδος της μοιάζει με το εικόνα που είδατε στην διάλεξη με θέμα 26 00:01:15,150 --> 00:01:19,270 Τετάρτη, όπου ουσιαστικά έχουμε κάποια διαδικασία client όπως το Google Chrome. 27 00:01:19,270 --> 00:01:22,980 >> Και στη συνέχεια ένα βήμα είναι η πελάτης στέλνει μια αίτηση. 28 00:01:22,980 --> 00:01:27,510 Έτσι ώστε να μπορεί να είναι κάτι σαν και ας επισκεφθείτε, δεν ξέρω, CS50.net. 29 00:01:27,510 --> 00:01:29,320 Γι 'αυτό να εκδώσει την εν λόγω αίτηση. 30 00:01:29,320 --> 00:01:34,280 Και μήπως κανείς να θυμηθεί το όνομα του το πρωτόκολλο που καθορίζει τον τρόπο που 31 00:01:34,280 --> 00:01:35,610 αίτηση πρέπει να είναι δομημένη; 32 00:01:35,610 --> 00:01:36,382 Ναι. 33 00:01:36,382 --> 00:01:37,650 >> ΚΟΙΝΟ: [δεν ακούγεται]. 34 00:01:37,650 --> 00:01:38,150 >> KEVIN SCHMID: Ακριβώς. 35 00:01:38,150 --> 00:01:40,100 Έτσι είναι όπως HTTP, έτσι δεν είναι; 36 00:01:40,100 --> 00:01:44,720 Έτσι, ουσιαστικά η προδιαγραφή για το πώς ότι η αίτηση πρέπει πραγματικά να καθοριστούν 37 00:01:44,720 --> 00:01:47,450 έξω, διότι στο τέλος της ημέρας, ότι η αίτηση είναι πραγματικά ακριβώς όπως μια 38 00:01:47,450 --> 00:01:50,240 κορδόνι που ουσιαστικά λέει θέλω αυτό. 39 00:01:50,240 --> 00:01:53,580 Και η προδιαγραφή γι 'αυτό είναι το HTTP. 40 00:01:53,580 --> 00:01:55,270 Έτσι, αυτό είναι σαν ένα πρωτόκολλο. 41 00:01:55,270 --> 00:01:57,920 >> Έτσι, στη συνέχεια, λαμβάνει ο server το εν λόγω αίτημα. 42 00:01:57,920 --> 00:02:01,610 Έτσι, εσείς έχετε εγκαταστήσει ένα web server στη συσκευή CS50. 43 00:02:01,610 --> 00:02:02,460 Είναι Apache. 44 00:02:02,460 --> 00:02:06,230 Και αυτή την εβδομάδα, όταν εργάζεστε σε πρόβλημα έθεσε επτά, θα είστε πραγματικά να εργάζονται 45 00:02:06,230 --> 00:02:08,160 με αυτό το web server. 46 00:02:08,160 --> 00:02:12,380 Έτσι, ο server λαμβάνει το αίτημα αυτό, και τότε θα πρέπει να το είδος του μηδέν της 47 00:02:12,380 --> 00:02:15,090 το κεφάλι και να πω, όπως καλά τι μπορώ να κάνω με αυτό; 48 00:02:15,090 --> 00:02:20,060 >> Έτσι, με βάση ό, τι αποφασίσει να κάνει, στη συνέχεια, μπορεί να χρειαστεί να επικοινωνήσετε με κάποιο είδος 49 00:02:20,060 --> 00:02:20,730 των πόρων. 50 00:02:20,730 --> 00:02:23,700 Και ότι ο πόρος θα μπορούσε να είναι μια πολλά διαφορετικά πράγματα. 51 00:02:23,700 --> 00:02:26,810 Για το ένα, θα μπορούσε να είναι ακριβώς σαν ένα στατικό αρχείο HTML. 52 00:02:26,810 --> 00:02:29,820 Έτσι θα μπορούσε απλώς να είναι όπως κάποια HTML, που είναι όπως για 53 00:02:29,820 --> 00:02:31,100 την προσωπική σας ιστοσελίδα. 54 00:02:31,100 --> 00:02:35,360 Θα μπορούσε να είναι ένα στατικό αρχείο σαν εικόνα ή σαν μια ταινία που έχετε. 55 00:02:35,360 --> 00:02:37,660 Θα μπορούσε ακόμη και να μιλήσει σε κάποιο είδος της βάσης δεδομένων 56 00:02:37,660 --> 00:02:39,530 όπως μια βάση δεδομένων MySQL. 57 00:02:39,530 --> 00:02:43,910 Γι 'αυτό δεν πρέπει πάντα να επικοινωνούν με μια πηγή, αλλά σε 58 00:02:43,910 --> 00:02:45,700 Σε ορισμένες περιπτώσεις, θα μπορούσε. 59 00:02:45,700 --> 00:02:47,800 >> Και τότε τι πρόκειται να κάνουμε μετά από αυτό είναι ότι πρόκειται να 60 00:02:47,800 --> 00:02:49,430 στείλετε πίσω την απάντηση. 61 00:02:49,430 --> 00:02:53,130 Και η απάντηση για αυτό είναι καθορίζεται επίσης από HTTP. 62 00:02:53,130 --> 00:02:54,830 Έτσι, τότε ο πελάτης μπορεί να το παραλάβει. 63 00:02:54,830 --> 00:02:56,740 Μπορεί να το ξεσκίσει και θα τα επεξεργάζεται. 64 00:02:56,740 --> 00:03:00,900 Και τότε μπορείτε να πάρετε μια ιστοσελίδα όπως το Google ή CS50.net ή 65 00:03:00,900 --> 00:03:02,240 ό, τι πήγε. 66 00:03:02,240 --> 00:03:03,100 Εντάξει; 67 00:03:03,100 --> 00:03:06,080 >> Έτσι, αυτή είναι η βασική αλληλεπίδραση που θα πάμε να ασχολούνται με. 68 00:03:06,080 --> 00:03:08,770 Και είμαστε λίγο πολύ θα είναι εστιάζοντας σε αυτό το μέρος του 69 00:03:08,770 --> 00:03:10,640 αλληλεπίδρασης, ο διακομιστής. 70 00:03:10,640 --> 00:03:10,990 OK. 71 00:03:10,990 --> 00:03:12,210 Cool. 72 00:03:12,210 --> 00:03:15,500 Ο καθένας έχει οποιεσδήποτε ερωτήσεις μέχρι τώρα; 73 00:03:15,500 --> 00:03:17,720 OK. 74 00:03:17,720 --> 00:03:22,430 >> Έτσι, όπως είπαμε, ο web server λαμβάνει αυτό το αίτημα HTTP και στη συνέχεια εκδίδει αυτό 75 00:03:22,430 --> 00:03:24,760 Απόκρισης HTTP. 76 00:03:24,760 --> 00:03:29,100 Και όπως είπαμε πριν, η Συσκευή CS50 web server είναι ο Apache. 77 00:03:29,100 --> 00:03:32,490 Έτσι, όταν δουλεύετε σε P έθεσε επτά, θα πάμε να εργάζονται με το 78 00:03:32,490 --> 00:03:34,120 Apache web server. 79 00:03:34,120 --> 00:03:37,890 Ποτέ δεν θα πρέπει να δουλέψουμε πολύ με Apache άμεσα πάρα πολύ. 80 00:03:37,890 --> 00:03:41,920 Μπορείτε να ρυθμίσετε το είδος του Apache λίγο όταν καθορίζετε τα virtual hosts ή 81 00:03:41,920 --> 00:03:44,970 οι κατά οικοδεσπότες, και θα πάρουμε σε αυτό σε λίγο. 82 00:03:44,970 --> 00:03:50,620 >> Αλλά βασικά, ο web server Apache συσταθεί για να συνεργαστεί με το είδος PHP 83 00:03:50,620 --> 00:03:51,730 της έξω από το κουτί. 84 00:03:51,730 --> 00:03:56,170 Έτσι, αυτό που πραγματικά συμβαίνει είναι όταν θα πάτε σε μια από τις ιστοσελίδες σας, όπως, ας πούμε, 85 00:03:56,170 --> 00:04:00,360 τοπική κάθετο index.php ή κάτι υποδοχής, είναι το πρόγραμμα περιήγησής σας στέλνει ότι 86 00:04:00,360 --> 00:04:04,330 αιτήματος, και στη συνέχεια Apache κάθεται εκεί και υπολογίζει να κάνει με αυτό. 87 00:04:04,330 --> 00:04:08,840 Και η δράση είναι να εκτελέσει ότι ο κώδικας στο index.php και 88 00:04:08,840 --> 00:04:11,330 τότε το στείλετε μακριά πίσω. 89 00:04:11,330 --> 00:04:15,640 Έτσι υπάρχει αυτό. 90 00:04:15,640 --> 00:04:16,980 Γι 'αυτό και το είδος του μιλήσει γι' αυτό. 91 00:04:16,980 --> 00:04:21,990 Έτσι θα μπορούσε να εξυπηρετήσει μόνο ένα στατικό αρχείο ή να τρέξει λίγο κώδικα PHP και στη συνέχεια το θέμα 92 00:04:21,990 --> 00:04:23,510 η απόκριση. 93 00:04:23,510 --> 00:04:27,670 >> Έτσι, στη συνέχεια, μια κοινή ερώτηση που μπορεί να έρθει up είναι καλά, πώς μπορούμε πραγματικά να ασχοληθεί 94 00:04:27,670 --> 00:04:31,750 με την κατοχή πολλαπλών χρηστών την ίδια στιγμή; 95 00:04:31,750 --> 00:04:36,930 Φανταστείτε λοιπόν, αν γράφατε ένα web διακομιστή, εάν είχατε ένα web server που 96 00:04:36,930 --> 00:04:39,900 προσπαθούσατε να γράψετε κάτι όπως η C ή κάτι τέτοιο, 97 00:04:39,900 --> 00:04:45,150 βασικά μπορείτε να σκεφτείτε πόσο υπάρχει θα μπορούσε να είναι κάποιο είδος κώδικα που 98 00:04:45,150 --> 00:04:49,330 Θα λάβετε το αίτημα, αλλά στη συνέχεια έχει να κάνει όλο αυτό το έργο σε αυτό. 99 00:04:49,330 --> 00:04:53,060 Μπορεί να έχει, για παράδειγμα, σε επαφή με το βάση δεδομένων ή κάτι τέτοιο. 100 00:04:53,060 --> 00:04:53,300 Σωστά; 101 00:04:53,300 --> 00:04:56,010 Και τότε θα κάνουμε αυτό το είδος της επεξεργασίας και, στη συνέχεια, 102 00:04:56,010 --> 00:04:57,060 αποστέλλεται πίσω την απόκριση. 103 00:04:57,060 --> 00:04:58,950 Έτσι, αυτό είναι σαν το υψηλό Επισκόπηση επίπεδο. 104 00:04:58,950 --> 00:05:04,210 >> Αλλά δεν είναι αμέσως προφανές το πώς θα μπορεί να το κάνει αυτό, έτσι ώστε δύο άτομα ή 105 00:05:04,210 --> 00:05:09,040 ακόμη και 1.000 άτομα θα μπορούσε να συνεργαστεί με σας web server ταυτόχρονα. 106 00:05:09,040 --> 00:05:14,880 Έτσι, η λύση που χρησιμοποιεί Apache ονομάζεται σπειρώματα ή διαδικασίες. 107 00:05:14,880 --> 00:05:16,770 Έτσι, μπορεί να έχετε ακούσει τους όρους αυτούς πριν. 108 00:05:16,770 --> 00:05:22,190 Είναι εντάξει, αν δεν έχετε, αλλά απλά σκεφτείτε σχετικά με θέματα ή διαδικασίες και τρόπους για 109 00:05:22,190 --> 00:05:26,290 ένα λειτουργικό σύστημα ή ένα πρόγραμμα χρήστη ή κάτι τέτοιο ή ένα web server 110 00:05:26,290 --> 00:05:28,810 να είδος εκτελέσει πολλαπλές πράγματα ταυτόχρονα. 111 00:05:28,810 --> 00:05:31,760 Έτσι, μπορεί να έχετε ακούσει τον όρο όπως τα θέματα της εκτέλεσης. 112 00:05:31,760 --> 00:05:34,140 Έτσι είναι το είδος του σαν να είστε είδος του multitasking. 113 00:05:34,140 --> 00:05:37,710 >> Και αν έχετε δει στο κουτί σας φορητό υπολογιστή, ή κάτι τέτοιο, 114 00:05:37,710 --> 00:05:43,040 πολλαπλών πυρήνων, τι μπορείτε να κάνετε είναι να μπορείτε να τρέχουν δύο διαφορετικά νήματα σε διαφορετικές 115 00:05:43,040 --> 00:05:46,700 τμήματα της CPU έτσι ώστε να μπορούν στην πραγματικότητα να συμβεί την ίδια στιγμή. 116 00:05:46,700 --> 00:05:48,100 Έτσι, αυτό είναι πραγματικά ισχυρή. 117 00:05:48,100 --> 00:05:52,270 Και αυτό είναι το είδος του Apache του λύση στο πρόβλημα αυτό. 118 00:05:52,270 --> 00:05:57,900 >> Έτσι, υπάρχουν κάτι σαν όλα τα ζητήματα με την προσέγγιση αυτή όμως; 119 00:05:57,900 --> 00:05:59,870 Έτσι υποθέτω ότι το είδος τους έγραψε εκεί. 120 00:05:59,870 --> 00:06:03,440 Αλλά και οι δύο από αυτούς είδος χρησιμοποιούν πολλή μνήμη. 121 00:06:03,440 --> 00:06:07,490 Είναι πολύ ακριβό για να δημιουργήσετε ένα νήμα ή μια διαδικασία. 122 00:06:07,490 --> 00:06:11,750 >> Και μέρος της συλλογιστικής είναι ότι ακριβώς όπως όταν τρέχετε ένα πρόγραμμα C 123 00:06:11,750 --> 00:06:15,090 σαν κύρια σας και, στη συνέχεια, ότι οι κλήσεις μια άλλη λειτουργία, που έχει 124 00:06:15,090 --> 00:06:16,520 κάποιο είδος της στοίβας. 125 00:06:16,520 --> 00:06:19,910 Έτσι, τα θέματα που απαιτούν επίσης μια εντελώς ξεχωριστή στοίβα που 126 00:06:19,910 --> 00:06:21,220 μπορεί να είναι αρκετά μεγάλο. 127 00:06:21,220 --> 00:06:25,170 Και αν μπορείτε να φανταστείτε με τους τόνους των χρήστες στην ιστοσελίδα σας, θα έχετε 128 00:06:25,170 --> 00:06:26,280 πολλά διαφορετικά νήματα. 129 00:06:26,280 --> 00:06:28,230 Αυτό είναι ένα πολύ καπνοδόχων διαχείριση και συντήρηση. 130 00:06:28,230 --> 00:06:31,280 Γι 'αυτό είναι μεγάλη κατανάλωση μνήμης. 131 00:06:31,280 --> 00:06:35,650 >> Και στη συνέχεια, επίσης, ας πούμε ότι έχετε μόνο ένα CPU, ή ας πούμε ότι έχετε 132 00:06:35,650 --> 00:06:38,460 περισσότερα θέματα από ό, τι έχετε αυτές multicores. 133 00:06:38,460 --> 00:06:38,730 Σωστά; 134 00:06:38,730 --> 00:06:43,280 Ας πούμε ότι είχατε 10 θέματα και είχατε μόνο πέντε CPUs. 135 00:06:43,280 --> 00:06:46,260 Μπορείτε είδους πρέπει να το κάνουμε αυτό το πράγμα, όπου εναλλαγή μεταξύ της τρέχουσας 136 00:06:46,260 --> 00:06:49,090 αυτό που εκτελείται γιατί δεν μπορεί να τρέξει και τα 10 με τη μία. 137 00:06:49,090 --> 00:06:50,980 Και αυτό ονομάζεται μεταγωγή του πλαισίου. 138 00:06:50,980 --> 00:06:54,260 Και αυτός ο όρος στην πραγματικότητα έχει ένα ζευγάρι των διαφορετικά πλαίσια, αλλά ας 139 00:06:54,260 --> 00:06:56,620 σκεφτείτε το σαν μεταγωγής ανάμεσα σε δύο νήματα. 140 00:06:56,620 --> 00:06:59,730 Αυτό μπορεί να είναι αρκετά ακριβά, διότι βασικά αυτό που έχετε να κάνετε είναι να σας 141 00:06:59,730 --> 00:07:03,340 Πρέπει να σταματήσει αυτό που κάνετε, εκτός από το κατάσταση του εν λόγω νήμα που εκτελείται, και 142 00:07:03,340 --> 00:07:05,440 στη συνέχεια να στραφούν προς κάπου αλλού. 143 00:07:05,440 --> 00:07:09,420 >> Έτσι κάνει ο καθένας το είδος δείτε το τα κίνητρα του γιατί τα θέματα και 144 00:07:09,420 --> 00:07:12,030 διαδικασίες μπορεί να είναι λίγο ογκώδες; 145 00:07:12,030 --> 00:07:13,840 Και δεν έχετε κάποια ερώτηση; 146 00:07:13,840 --> 00:07:14,376 OK. 147 00:07:14,376 --> 00:07:15,070 Cool. 148 00:07:15,070 --> 00:07:18,090 Ο καθένας έχει οποιεσδήποτε ερωτήσεις; 149 00:07:18,090 --> 00:07:19,620 OK. 150 00:07:19,620 --> 00:07:26,720 >> Έτσι, αν κάνουμε ένα βήμα πίσω για ένα δευτερόλεπτο, υπάρχει κάτι σαν μια 151 00:07:26,720 --> 00:07:30,350 παρατήρηση που μπορούμε να κάνουμε για πολλές εφαρμογές web. 152 00:07:30,350 --> 00:07:34,810 Και αυτό είναι πραγματικά ότι πολλοί από αυτούς στην πραγματικότητα δεν το κάνουμε αυτό πολύ χρήσιμο 153 00:07:34,810 --> 00:07:37,140 εργάζονται μέσα από ένα νήμα. 154 00:07:37,140 --> 00:07:41,170 Έτσι έχει κάποιος άρχισε στις P έθεσε επτά καθόλου; 155 00:07:41,170 --> 00:07:45,650 Έτσι θέλετε να περιγράψει ίσως μερικά από τα μέρη; 156 00:07:45,650 --> 00:07:47,850 Έχετε εργαστεί σε σύνδεση ή κάτι τέτοιο; 157 00:07:47,850 --> 00:07:49,330 >> ΚΟΙΝΟ: Όχι. 158 00:07:49,330 --> 00:07:49,780 >> KEVIN SCHMID: OK. 159 00:07:49,780 --> 00:07:50,150 Δεν πειράζει. 160 00:07:50,150 --> 00:07:50,900 Λυπάμαι. 161 00:07:50,900 --> 00:07:55,790 Αλλά βασικά, στο σύνολο P, είστε πρόκειται να κάνει πολλά είδος 162 00:07:55,790 --> 00:07:59,760 ερωτήματα σε μια βάση δεδομένων για να πάρετε κάποια πληροφορίες από την εν λόγω βάση δεδομένων. 163 00:07:59,760 --> 00:08:03,330 Και τι τον κωδικό σας πρόκειται να κάνει, τι η διαδικασία Apache ή 164 00:08:03,330 --> 00:08:06,030 ότι το νήμα Apache πρόκειται να κάνει ενώ θα πρέπει να επικοινωνήσετε με το 165 00:08:06,030 --> 00:08:08,990 βάση δεδομένων είναι ότι είναι είδος πρόκειται να είναι κάθεται εκεί και πρόκειται να 166 00:08:08,990 --> 00:08:12,130 περιμένει η βάση δεδομένων να απαντήσει. 167 00:08:12,130 --> 00:08:16,290 >> Τώρα, αυτό δεν μπορεί να ακούγεται σαν το μεγάλο α αντιμετώπιση, επειδή η βάση δεδομένων είναι σε σας 168 00:08:16,290 --> 00:08:18,240 Συσκευή CS50, σωστά; 169 00:08:18,240 --> 00:08:22,930 Αλλά υπάρχει ένα είδος δικτύου λανθάνουσα κατάσταση εκεί γιατί τώρα το διαδίκτυο 170 00:08:22,930 --> 00:08:26,830 διακομιστής πρέπει να εκδώσει δικό της αίτημα να η βάση δεδομένων να επικοινωνούν με το 171 00:08:26,830 --> 00:08:29,520 βάση δεδομένων και στη συνέχεια να πάρει ότι πληροφορίες πίσω. 172 00:08:29,520 --> 00:08:33,190 Έτσι τώρα είναι σαν να περιμένει καλά για μένα, είμαι πρόκειται να πάει να πάρει κάτι από το 173 00:08:33,190 --> 00:08:35,770 βάση δεδομένων και, στη συνέχεια, υπάρχει μια Πολλοί περιμένουν σε εξέλιξη. 174 00:08:35,770 --> 00:08:36,870 Μήπως αυτό έχει νόημα; 175 00:08:36,870 --> 00:08:38,580 >> Και για μερικά πράγματα δεν είναι τόσο άσχημα. 176 00:08:38,580 --> 00:08:41,950 Αν έχει μόνο, για παράδειγμα, πρόσβαση στη μνήμη, αυτό δεν αρέσει 177 00:08:41,950 --> 00:08:44,100 φρικτό I / O latency. 178 00:08:44,100 --> 00:08:47,110 Και όταν λέω, I / O latency, τι είμαι αναφέρεστε είναι όπως και κάθε είδους, όπως 179 00:08:47,110 --> 00:08:48,290 εισόδου-εξόδου. 180 00:08:48,290 --> 00:08:52,950 Αλλά για να αποκτήσετε πρόσβαση σε ένα αρχείο στο δίσκο, όπως αν ήθελα να εξυπηρετήσει το στατικό HTML 181 00:08:52,950 --> 00:08:57,850 αρχείο που ήταν στην ιστοσελίδα μου ή κάτι τέτοιο, εγώ το είδος πρέπει να 182 00:08:57,850 --> 00:09:02,310 να σταματήσει για λίγο, διαβάστε αυτό το αρχείο από το δίσκο, και στη συνέχεια, 183 00:09:02,310 --> 00:09:04,400 ότι η διαδικασία Είμαι σε αναμονή. 184 00:09:04,400 --> 00:09:06,700 Δεν κάνω χρήσιμο έργο. 185 00:09:06,700 --> 00:09:11,270 >> Αυτό δεν ισχύει για τα πάντα, αλλά είναι κοινή σε εφαρμογές όπως το σύνολο P 186 00:09:11,270 --> 00:09:13,960 επτά και πολλές εφαρμογές ότι δεν είστε 187 00:09:13,960 --> 00:09:15,440 κάνει πραγματικά πολύ σκέψη. 188 00:09:15,440 --> 00:09:19,090 Και όταν λέω σκέψη, εννοώ όπως υπολογιστική εργασία. 189 00:09:19,090 --> 00:09:23,270 Έτσι υπολογιστική εργασία θα μπορούσε να είναι κάτι όπως, ας πούμε, θα ήθελε να 190 00:09:23,270 --> 00:09:26,590 γράψετε ένα web server που μόλις υπολογίστηκαν το νιοστό αριθμό Fibonacci. 191 00:09:26,590 --> 00:09:29,300 Αυτό δεν ακούγεται σαν μια ιδιαίτερα διασκέδαση web server. 192 00:09:29,300 --> 00:09:34,220 Λες και δεν θα περίμενε κανείς ότι η περιοχή να είναι το επόμενο Facebook, αλλά αυτό είναι κάποια 193 00:09:34,220 --> 00:09:35,610 είδος υπολογιστική εργασία. 194 00:09:35,610 --> 00:09:39,570 >> Και μπορείτε να φανταστείτε ότι με την αντικατάσταση κάποιο άλλο είδος ενδιαφέροντα 195 00:09:39,570 --> 00:09:43,070 υπολογιστική εργασία. 196 00:09:43,070 --> 00:09:46,050 Ας πούμε ότι έχετε έγραφαν κάτι που υπολογίζεται τους βαθμούς 197 00:09:46,050 --> 00:09:49,170 διαχωρισμός ανάμεσα σε δύο ανθρώπους ή κάτι τέτοιο. 198 00:09:49,170 --> 00:09:51,860 Έτσι ώστε δεν περιλαμβάνει κάποιο είδος υπολογισμού, σωστά; 199 00:09:51,860 --> 00:09:56,630 Και ακόμα και τότε, να κάνει ότι έχετε ακόμα να κάνει πολλά αναμονής για ίσως 200 00:09:56,630 --> 00:09:59,550 θα πρέπει να διερευνούν μια βάση δεδομένων για να δούμε up που είναι φίλοι με το ποιος ή 201 00:09:59,550 --> 00:10:00,600 κάτι τέτοιο. 202 00:10:00,600 --> 00:10:03,510 Έτσι, υπάρχει αυτό το είδος της έννοιας υπολογιστικής εργασίας. 203 00:10:03,510 --> 00:10:05,260 Μήπως αυτό έχει νόημα; 204 00:10:05,260 --> 00:10:08,258 Μήπως κάποιος έχει απορίες; 205 00:10:08,258 --> 00:10:11,960 >> Αχ και υποθέτω έβαλα διακομιστές συνομιλίας εκεί γιατί διακομιστές συνομιλίας είναι το είδος της 206 00:10:11,960 --> 00:10:13,240 άλλο ένα καλό παράδειγμα αυτού. 207 00:10:13,240 --> 00:10:15,250 Ένας server συνομιλίας δεν έχει να κάνει πολύ σκέψη. 208 00:10:15,250 --> 00:10:18,350 Πρέπει απλώς να περιμένουμε για τους ανθρώπους να να στείλετε μηνύματα και στη συνέχεια, όταν 209 00:10:18,350 --> 00:10:19,800 κάνουν, να τους στείλετε. 210 00:10:19,800 --> 00:10:21,050 Εντάξει; 211 00:10:21,050 --> 00:10:23,410 212 00:10:23,410 --> 00:10:28,180 >> Έτσι απλά για να ανακεφαλαιώσουμε και πάλι, Apache και παρόμοια διακομιστές web όπως ότι ένα πιρούνι 213 00:10:28,180 --> 00:10:31,470 πολλά τα θέματα και τις διαδικασίες που μπορεί να είναι το είδος της σπατάλης. 214 00:10:31,470 --> 00:10:37,530 Έτσι υποθέτω ότι το ερώτημα που μπορεί να έρθει από αυτό το χρειαζόμαστε για να έχουμε 215 00:10:37,530 --> 00:10:39,610 πολλαπλά threads και διαδικασιών; 216 00:10:39,610 --> 00:10:41,890 Τι θα συμβεί αν είχαμε μόνο μία; 217 00:10:41,890 --> 00:10:45,710 >> Οπότε ας το είδος της δίνουν μια εικόνα από ό, τι αυτό θα μοιάζουν. 218 00:10:45,710 --> 00:10:47,810 Έτσι ας χρησιμοποιήσουμε μόνο ένα νήμα. 219 00:10:47,810 --> 00:10:48,660 Εντάξει; 220 00:10:48,660 --> 00:10:52,790 Φανταστείτε λοιπόν αυτό με ένα νήμα. 221 00:10:52,790 --> 00:10:56,600 >> Ας υποθέσουμε ότι στην πραγματικότητα δεν έκαναν ότι πολύ χρήσιμο - και όταν λέω 222 00:10:56,600 --> 00:10:59,450 χρήσιμο, εννοώ υπολογιστική εργασία - 223 00:10:59,450 --> 00:11:01,130 σε αυτά τα πολλαπλά threads πριν. 224 00:11:01,130 --> 00:11:04,180 Οπότε ας το είδος εδραίωση τα πάντα σε ένα νήμα. 225 00:11:04,180 --> 00:11:07,780 Τι κι αν είχαμε ένα νήμα αυτό το είδος μόλις πηγαίνει γύρω από το βρόχο και 226 00:11:07,780 --> 00:11:10,880 συνεχώς ελέγχους έκανε κάτι νέα συμβεί. 227 00:11:10,880 --> 00:11:15,130 Έτσι για παράδειγμα, συνέβη κάτι νέο θα μπορούσε να σημαίνει πήρα κάτι πίσω από 228 00:11:15,130 --> 00:11:19,310 η βάση δεδομένων, ή κάποιος που αποστέλλονται με νέα αίτηση HTTP. 229 00:11:19,310 --> 00:11:22,290 Έτσι, αυτές είναι το είδος των εκδηλώσεων συμβεί αυτό, έτσι δεν είναι; 230 00:11:22,290 --> 00:11:26,130 >> Και τότε τι μπορώ να κάνω όταν αυτά τα νέα πράγματα συμβαίνουν είναι σε αυτό το ίδιο το νήμα 231 00:11:26,130 --> 00:11:30,120 της εκτέλεσης, αυτό και μόνο το νήμα της εκτέλεση, μπορώ να καλέσω κάποιο κώδικα που 232 00:11:30,120 --> 00:11:32,410 θα χειριστεί το συγκεκριμένο πράγμα. 233 00:11:32,410 --> 00:11:36,640 Έτσι, για παράδειγμα, αν πήρα κάτι πίσω από τη βάση δεδομένων, θα μπορούσα να τρέξω μου 234 00:11:36,640 --> 00:11:40,960 μικρή υπολογιστική μέρος από αυτό που στην πραγματικότητα προετοιμάζεται ακριβώς το πράγμα για να 235 00:11:40,960 --> 00:11:42,620 στείλετε πίσω στο χρήστη. 236 00:11:42,620 --> 00:11:46,710 Έτσι κάνει αυτό το είδος της νόημα; 237 00:11:46,710 --> 00:11:49,940 >> Αλλά τι είναι πραγματικά η συνέπειες αυτού του γεγονότος; 238 00:11:49,940 --> 00:11:50,660 Σωστά; 239 00:11:50,660 --> 00:11:53,730 Επειδή έχουμε γράψει ένα πολύ κώδικα αυτού - 240 00:11:53,730 --> 00:11:58,330 και είμαι απλώς πρόκειται να βγαίνουμε μπροστά στις διαφάνειες, αν αυτό είναι εντάξει. 241 00:11:58,330 --> 00:12:00,930 Έτσι, αν δεν σας πειράζει, είμαι απλά πρόκειται να κάνουμε ένα βήμα πίσω. 242 00:12:00,930 --> 00:12:03,410 Έτσι, αυτό το είδος του πράγματος είναι ονομάζεται βρόχος εκδήλωση. 243 00:12:03,410 --> 00:12:04,070 Εντάξει; 244 00:12:04,070 --> 00:12:07,240 Και αυτό είναι το είδος της βασικής ιδέα πίσω από Node.js. 245 00:12:07,240 --> 00:12:11,240 >> Έτσι, αυτό που Node.js κάνει πραγματικά ως web server είναι ότι υπάρχει ένα ενιαίο νήμα 246 00:12:11,240 --> 00:12:14,850 που είναι βασικά πηγαίνει γύρω σε έναν βρόχο σαν μια στιγμή ένα είδος υπό 247 00:12:14,850 --> 00:12:18,510 η κουκούλα του Node.js που είναι συνεχώς τον έλεγχο, είχαμε λάβει νέα πράγματα; 248 00:12:18,510 --> 00:12:22,720 Και τότε θα τρέξει χειριστές ότι θα συσταθεί. 249 00:12:22,720 --> 00:12:26,720 Αλλά μια καλή ερώτηση για να ρωτήσω είναι, πώς μπορούμε να κάνουμε αυτή συμβεί 250 00:12:26,720 --> 00:12:28,090 με τα υπάρχοντα πράγματα; 251 00:12:28,090 --> 00:12:32,440 >> Έτσι έβαλα μια γραμμή κώδικα C εδώ ότι ουσιαστικά μοιάζει να είναι το άνοιγμα ενός 252 00:12:32,440 --> 00:12:33,060 αρχείο, έτσι δεν είναι; 253 00:12:33,060 --> 00:12:36,090 I Είναι μόλις βγήκε με ένα άλμπουμ. 254 00:12:36,090 --> 00:12:39,600 Γι 'αυτό και έπρεπε να την ανοίξετε ένα νέο αρχείο. 255 00:12:39,600 --> 00:12:43,810 Έτσι, ο τρόπος που μας κώδικα C για τη λειτουργία - 256 00:12:43,810 --> 00:12:47,890 και υποθέτω ότι ο λόγος που επέλεξα ήταν αρχεία επειδή αυτό είναι το είδος της έκτασης 257 00:12:47,890 --> 00:12:52,000 του έργου I / O που έχουμε κάνει σε C σε μια αίσθηση ότι υπάρχει εισόδου-εξόδου. 258 00:12:52,000 --> 00:12:55,070 Έτσι, καλούμε τον κωδικό αυτό που κάνει αυτό στ ανοιχτά. 259 00:12:55,070 --> 00:12:59,370 Και στη συνέχεια, στην επόμενη γραμμή μας προγράμματος, μπορούμε τώρα να συνεργαστεί με f. 260 00:12:59,370 --> 00:13:02,710 >> Έτσι, αυτό θα ήταν ένα παράδειγμα από κάτι αυτό είναι σαν σύγχρονη ή 261 00:13:02,710 --> 00:13:06,850 κλείδωμα επειδή εκείνη την πρώτη γραμμή εκεί περιμένουμε μέχρι να 262 00:13:06,850 --> 00:13:08,110 πάρετε το αρχείο ανοιχτό. 263 00:13:08,110 --> 00:13:12,260 Έτσι, στη δεύτερη γραμμή, γνωρίζουμε ότι μπορεί να λειτουργήσει με F, αλλά αυτό σημαίνει ότι 264 00:13:12,260 --> 00:13:16,240 ότι η δεύτερη γραμμή δεν μπορεί πραγματικά να τρέξει μέχρι την πρώτη γραμμή γίνεται. 265 00:13:16,240 --> 00:13:17,760 Μήπως αυτό έχει νόημα; 266 00:13:17,760 --> 00:13:20,890 >> Έτσι, αυτό θα ήταν κακό να θέσει σε ένα πρόγραμμα χειρισμού συμβάντων. 267 00:13:20,890 --> 00:13:23,920 Και ο λόγος για αυτό είναι ότι αυτό το είδος της αναμονής, έτσι δεν είναι; 268 00:13:23,920 --> 00:13:26,500 Έτσι, αυτό θα μας επανέλθει στο ίδιο πράγμα. 269 00:13:26,500 --> 00:13:29,470 Και τώρα δεν θα είχαμε ακόμη και η πλεονέκτημα των πολλαπλών νημάτων ή 270 00:13:29,470 --> 00:13:32,390 διεργασίες επειδή πήραμε ένα νήμα σε Node.js. 271 00:13:32,390 --> 00:13:35,496 Μήπως αυτό έχει νόημα για όλους; 272 00:13:35,496 --> 00:13:35,990 >> ΚΟΙΝΟ: Περιμένετε. 273 00:13:35,990 --> 00:13:36,980 Έτσι, ποια είναι η αντικατάσταση; 274 00:13:36,980 --> 00:13:37,840 >> KEVIN SCHMID: Ω, οπότε ναι. 275 00:13:37,840 --> 00:13:39,560 Έτσι, Πάω να φτάσετε στο ο αντικαταστάτης του. 276 00:13:39,560 --> 00:13:40,430 OK. 277 00:13:40,430 --> 00:13:42,960 Τι κι αν είχαμε κάτι που έμοιαζε με αυτό; 278 00:13:42,960 --> 00:13:45,730 Τι κι αν τώρα άλλαξε στ ανοίξει λίγο; 279 00:13:45,730 --> 00:13:48,370 Γι 'αυτό περνάω στο ίδιο δύο επιχειρήματα όπως και πριν. 280 00:13:48,370 --> 00:13:52,610 Αγαπώ ακόμα το νέο τραγούδι που ήρθε με. 281 00:13:52,610 --> 00:13:57,260 Αλλά είμαι περνώντας ένα τρίτο πράγμα που είναι η μεταβλητή που ονομάζεται κώδικα. 282 00:13:57,260 --> 00:14:02,280 >> Αλλά τι είναι ο κωδικός πραγματικότητα σε αυτό το πλαίσιο; 283 00:14:02,280 --> 00:14:05,360 Είναι σαν ένα κανονικό μεταβλητή C; 284 00:14:05,360 --> 00:14:06,740 Είναι μια λειτουργία, έτσι δεν είναι; 285 00:14:06,740 --> 00:14:09,450 Και αυτό μπορεί να είναι λίγο περίεργο γιατί Είμαι πραγματικά σαν τώρα περνά μια 286 00:14:09,450 --> 00:14:12,320 λειτουργούν σε μια άλλη λειτουργία. 287 00:14:12,320 --> 00:14:14,400 >> Έτσι, ένα ζευγάρι πράγματα που πρέπει να σημειωθεί σχετικά με αυτό. 288 00:14:14,400 --> 00:14:17,145 Ένα, δεν είμαι πραγματικά καλώντας η λειτουργία κωδικού. 289 00:14:17,145 --> 00:14:20,650 Έτσι δεν μπορείτε να δείτε τον κώδικα με το paren αριστερά, δεξιά paren. 290 00:14:20,650 --> 00:14:23,010 Είμαι απλά περνώντας στον κώδικα. 291 00:14:23,010 --> 00:14:26,990 Και σε C, τι αυτό θα κάνουμε πραγματικότητα είναι να μου δώσει ένα δείκτη για το πραγματικό 292 00:14:26,990 --> 00:14:29,740 κώδικα, και τότε αυτό θα μπορούσε να τρέξει. 293 00:14:29,740 --> 00:14:33,350 Αλλά σκεφτείτε το, όπως είστε περνώντας τον κώδικα να τρέχει όταν 294 00:14:33,350 --> 00:14:35,150 ότι το αρχείο ανοίγει. 295 00:14:35,150 --> 00:14:41,430 >> Αλλά αυτό σημαίνει ότι τώρα η υπόλοιπο του προγράμματός μου, η οποία θα μπορούσε να κάνει 296 00:14:41,430 --> 00:14:47,050 άλλα πράγματα, μπορεί να συνεχίσει να κάνει άλλα πράγματα, ενώ εμείς, δεν είναι πραγματικά περιμένουμε, αλλά 297 00:14:47,050 --> 00:14:50,890 Απλά πρέπει στο πίσω μέρος του κεφαλιού μας που όταν είναι ανοικτά, τρέξιμο αυτού του αρχείου που 298 00:14:50,890 --> 00:14:52,130 κωδικός στην κορυφή. 299 00:14:52,130 --> 00:14:53,390 Μήπως αυτό έχει νόημα; 300 00:14:53,390 --> 00:14:58,060 >> Και τώρα η ιδέα πίσω από Node.js είναι ότι ο κώδικας στην ουσία κάνουμε με f 301 00:14:58,060 --> 00:15:04,590 μέρος πρέπει να είναι αρκετά σύντομη και απλή και απλή και δεν είναι πραγματικά 302 00:15:04,590 --> 00:15:06,160 πολύ εντατική υπολογιστικά. 303 00:15:06,160 --> 00:15:09,390 Μπορεί να χρειαστεί να ανοίξετε ένα άλλο αρχείο, αλλά ότι θα πρέπει επίσης να είναι αρκετά γρήγορη 304 00:15:09,390 --> 00:15:14,710 γιατί πρέπει να πω κάνουμε άλλο f ανοίξετε και στη συνέχεια να καλέσετε αυτό το άλλο κωδικό. 305 00:15:14,710 --> 00:15:19,100 >> Έτσι απλά για να είναι απολύτως σαφής, το f ανοίξτε που κάνει το νέο τραγούδι Katy Perry 306 00:15:19,100 --> 00:15:23,060 done mp3, ότι πρόκειται για αρκετά πολύ να επιστρέψει αμέσως. 307 00:15:23,060 --> 00:15:27,820 Και τότε μπορούμε απλά να συνεχίσουμε να κάνουμε άλλα πράγματα, γιατί όλα αυτά που τώρα στ 308 00:15:27,820 --> 00:15:33,410 ανοικτή πρόσκληση δεν είναι πει ουσιαστικά το υποκείμενη στ ανοιχτού κώδικα ανοίξετε αυτό το αρχείο 309 00:15:33,410 --> 00:15:36,020 και όταν τελειώσετε το άνοιγμα αυτό αρχείο ή όταν το πάρει πίσω, 310 00:15:36,020 --> 00:15:37,480 στη συνέχεια, εκτελέστε τον κώδικα. 311 00:15:37,480 --> 00:15:39,540 Αλλά δεν τρέχει πραγματικά τον εν λόγω κώδικα. 312 00:15:39,540 --> 00:15:41,815 Και είχατε μια ερώτηση; 313 00:15:41,815 --> 00:15:46,180 >> ΚΟΙΝΟ: Μπορείτε φαίνεται να υπονοεί μερικές φορές ότι η προσθήκη υπολογιστικά 314 00:15:46,180 --> 00:15:50,545 εντατική κωδικός είδους σπάσει το [Δεν ακούγεται] με γνώμονα το σύστημα. 315 00:15:50,545 --> 00:15:51,795 [Δεν ακούγεται]; 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> KEVIN SCHMID: Αυτό είναι ένα μεγάλο ερώτημα. 318 00:15:55,290 --> 00:15:59,280 Έτσι έχω πραγματικά ένα παράδειγμα για το πώς θα μπορούσε να ενσωματώσει υπολογιστικά 319 00:15:59,280 --> 00:16:01,090 εντατική κώδικα σε λίγο. 320 00:16:01,090 --> 00:16:03,620 Έτσι, όταν φτάσουμε στα παραδείγματα κώδικα, Θα είμαι βέβαιος να τραβήξει το ένα. 321 00:16:03,620 --> 00:16:04,700 Είναι αυτό εντάξει; 322 00:16:04,700 --> 00:16:05,950 Σας ευχαριστώ. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> Ποιο ήταν το όνομά σου; 325 00:16:08,750 --> 00:16:10,620 >> ΚΟΙΝΟ: Aaron. 326 00:16:10,620 --> 00:16:14,830 >> KEVIN SCHMID: Aaron δημιουργεί ένα πολύ καλό σημείο, το οποίο είναι ότι αν είχα 327 00:16:14,830 --> 00:16:18,560 κάποια υπολογιστικά εντατικές κώδικα σε η ουσία κάνει με f μέρος, το υπόλοιπο της 328 00:16:18,560 --> 00:16:22,880 το πρόγραμμά μου δεν μπορεί να τρέξει και δεν μπορείτε να ακούσετε για τις νέες αιτήσεις ή οτιδήποτε έως ότου όλα 329 00:16:22,880 --> 00:16:24,270 η ουσία έχει τελειώσει. 330 00:16:24,270 --> 00:16:27,390 Έτσι, αν γράφω κώδικα κόμβου γενικά αν δεν κάνουμε κάτι σαν Πάω 331 00:16:27,390 --> 00:16:33,060 να προτείνει αργότερα, όταν κοιτάμε το παραδείγματα κώδικα, πρέπει να είμαι σίγουρος ότι 332 00:16:33,060 --> 00:16:36,060 κωδικός μου δεν δένουν αυτό το βρόχο εκδήλωση. 333 00:16:36,060 --> 00:16:38,120 Μήπως αυτό έχει νόημα; 334 00:16:38,120 --> 00:16:38,350 OK. 335 00:16:38,350 --> 00:16:40,040 Cool. 336 00:16:40,040 --> 00:16:47,090 >> Έτσι Node.js προσφέρει αυτό το πλαίσιο που μπορείτε να δημιουργήσετε αυτά συμβάν οδηγείται 337 00:16:47,090 --> 00:16:48,210 servers με. 338 00:16:48,210 --> 00:16:53,460 Γι 'αυτό έχει αυτό το είδος της ασύγχρονης non-blocking I / O βιβλιοθήκες, ενώ 339 00:16:53,460 --> 00:16:56,800 οι τυπικές βιβλιοθήκες C, που έχουμε ήδη εργάζονται με, όπως και αν απλά 340 00:16:56,800 --> 00:16:59,500 χρήση τους με τον ίδιο τρόπο που έχουμε τα χρησιμοποιούν με f ανοίγει και 341 00:16:59,500 --> 00:17:03,000 πράγματα, αυτά είναι το κλείδωμα γιατί που πραγματικά πρέπει να περιμένουμε για 342 00:17:03,000 --> 00:17:04,470 αυτό το αρχείο για να το ανοίξετε. 343 00:17:04,470 --> 00:17:09,290 >> Αλλά Node.js σας δίνει ότι και ουσιαστικά δένει στο V8 της Google 344 00:17:09,290 --> 00:17:14,030 JavaScript κινητήρα που είναι ο λόγος ότι το Chrome είναι τόσο γρήγορα στην επεξεργασία 345 00:17:14,030 --> 00:17:17,040 JavaScript διότι έχει αυτόν τον κινητήρα V8. 346 00:17:17,040 --> 00:17:22,460 Έτσι ξέρω ότι ακούγεται σαν ένα από αυτά WWDC συνέδρια προγραμματιστών πράγμα 347 00:17:22,460 --> 00:17:25,390 όπου απλά να ρίξει μια δέσμη των Αριθμός επιστολή πράγματα για τους μεταποιητές 348 00:17:25,390 --> 00:17:26,910 και λένε ότι αυτό είναι τόσο δροσερό. 349 00:17:26,910 --> 00:17:34,200 Αλλά είναι δροσερό ότι το έκαναν Αυτό επειδή η JavaScript - 350 00:17:34,200 --> 00:17:37,010 ή ίσως αν δεν είστε εξοικειωμένοι με JavaScript ακόμη, επειδή δεν είχαμε 351 00:17:37,010 --> 00:17:38,180 οι διαλέξεις σε αυτό - 352 00:17:38,180 --> 00:17:40,770 αλλά JavaScript είναι μια ερμηνεία γλώσσας. 353 00:17:40,770 --> 00:17:41,970 >> Και αυτό είναι ένα σημαντικό σημείο πάρα πολύ. 354 00:17:41,970 --> 00:17:45,790 Γι 'αυτό είναι σημαντικό για την ιστοσελίδα μας servers να είναι γρήγορος, έτσι δεν είναι; 355 00:17:45,790 --> 00:17:49,970 Και αν ήμασταν απλά τρέχει JavaScript κώδικα που ερμηνεύονται μόνο με 356 00:17:49,970 --> 00:17:52,130 κάθε παλαιό διερμηνέα θα μπορούσε να είναι αργή. 357 00:17:52,130 --> 00:17:55,980 Έτσι κόμβου οφέλη από την απόκτηση αυτή super fast διερμηνέα V8. 358 00:17:55,980 --> 00:17:59,580 Και δεν ξέρω αν το όνομα επειδή το χαστούκι V8 στο μέτωπο 359 00:17:59,580 --> 00:18:01,110 πράγμα, αλλά εντάξει. 360 00:18:01,110 --> 00:18:07,070 >> Έτσι έχω ετοιμάσει μερικά παραδείγματα σε αυτό το URL. 361 00:18:07,070 --> 00:18:10,490 Μετά το σεμινάριο, είμαι το είδος του πρόκειται να μιλήσουμε για το πώς μπορείτε να πάρετε σετ κόμβου 362 00:18:10,490 --> 00:18:13,570 , αλλά για τώρα, εγώ ακριβώς το είδος του θέλουν να περπατήσει μέσα από μερικά παραδείγματα κώδικα. 363 00:18:13,570 --> 00:18:17,250 Έτσι, εάν θέλετε να ακολουθήσετε μαζί, όλα τα πηγαίος κώδικας είναι διαθέσιμα εκεί. 364 00:18:17,250 --> 00:18:18,720 Εντάξει; 365 00:18:18,720 --> 00:18:22,280 >> Έτσι, θα αφήσω αυτό το URL για ένα μικρό. 366 00:18:22,280 --> 00:18:24,440 Και τότε είμαι απλώς πρόκειται να μεταβείτε στο τερματικό. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 Είναι όλοι καλά με αυτή τη διεύθυνση URL; 369 00:18:34,400 --> 00:18:37,990 Έτσι, Πάω να περάσουμε στο τερματικό μου εδώ. 370 00:18:37,990 --> 00:18:42,030 >> Έτσι, εδώ είναι ο κώδικας που Έχω για σήμερα. 371 00:18:42,030 --> 00:18:43,960 Γιατί δεν ξεκινάμε με simpler.js αρχείο; 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 Το άλλο πράγμα είναι ότι όλα αυτά κωδικός πρόκειται να γραφτεί σε 374 00:18:52,100 --> 00:18:56,660 JavaScript που μπορεί να είναι ή μπορεί να μην είναι εξοικειωμένοι με. 375 00:18:56,660 --> 00:19:00,170 Υποθέτω ότι μερικά πράγματα είναι ότι πολλά του κώδικα JavaScript είναι το είδος της 376 00:19:00,170 --> 00:19:04,000 σύνταξη και η δομή είναι πολύ παρόμοια με C, έτσι ώστε να μπορείτε να το είδος του να πάρει ως 377 00:19:04,000 --> 00:19:05,020 προχωράς. 378 00:19:05,020 --> 00:19:08,750 Έχω προσπαθήσει να γράψει πολλά από τα ξεκινώντας κώδικα για αυτό με έναν τρόπο που είναι 379 00:19:08,750 --> 00:19:11,230 παρόμοια με C έτσι ώστε να είναι λίγο πιο ευανάγνωστο. 380 00:19:11,230 --> 00:19:15,980 Αλλά καθώς προχωρούμε, θα είμαι αποδεικνύοντας μερικά από τα επιπλέον 381 00:19:15,980 --> 00:19:18,980 χαρακτηριστικά της JavaScript που είναι είδος δροσερό. 382 00:19:18,980 --> 00:19:21,510 >> Αλλά ας ρίξουμε μια ματιά σε αυτό το πρόγραμμα δείγμα. 383 00:19:21,510 --> 00:19:24,820 Υποθέτω ότι όλα είναι κομμένα από εκεί. 384 00:19:24,820 --> 00:19:28,500 Είμαι ακριβώς πρόκειται να καθορίσει ότι η πραγματική γρήγορα, αν αυτό είναι εντάξει ή όχι. 385 00:19:28,500 --> 00:19:31,400 Δεν ξέρω τι είναι αυτό που πρόκειται να κάνει. 386 00:19:31,400 --> 00:19:34,660 Είναι αυτό λίγο καλύτερα; 387 00:19:34,660 --> 00:19:36,510 Μπορείτε να δείτε το var και πράγματα; 388 00:19:36,510 --> 00:19:39,320 OK. 389 00:19:39,320 --> 00:19:44,120 >> Έτσι, η πρώτη γραμμή είναι σαν το JavaScript έκδοση μιας μεταβλητής 390 00:19:44,120 --> 00:19:44,800 δήλωση. 391 00:19:44,800 --> 00:19:49,870 Έτσι απλά για να αναδείξει ό, τι θα ήταν αυτό μοιάζει με C. Έτσι, αυτό είναι ακριβώς όπως 392 00:19:49,870 --> 00:19:52,620 μου λέει δείκτης ισούται με τρεις ή κάτι τέτοιο. 393 00:19:52,620 --> 00:19:55,740 Γι 'αυτό και δεν προσδιορίζει τον τύπο. 394 00:19:55,740 --> 00:20:00,780 JavaScript δεν έχουν τύπους, αλλά είναι πληκτρολογήσει πολύ δυναμικά στη φύση, έτσι 395 00:20:00,780 --> 00:20:02,580 δεν παρέχει κανένα είδος του τύπου σε αυτό. 396 00:20:02,580 --> 00:20:03,670 Γι 'αυτό έχει ακριβώς var. 397 00:20:03,670 --> 00:20:05,320 Αυτό είναι σαν μεταβλητή. 398 00:20:05,320 --> 00:20:05,920 Εντάξει; 399 00:20:05,920 --> 00:20:08,340 >> Και Παίρνω αυτό το μεταβλητό HTTP. 400 00:20:08,340 --> 00:20:12,480 Και στη δεξιά πλευρά μου, έχω το έκφραση που θέλετε να θέσει σε HTTP. 401 00:20:12,480 --> 00:20:14,960 Και αυτό λέει απαιτούν HTTP. 402 00:20:14,960 --> 00:20:18,500 Έτσι, αυτό είναι το είδος παρόμοιο με συμπεριλάβει. 403 00:20:18,500 --> 00:20:22,940 Είναι λίγο περισσότερο σαν ισχυρό από ό, τι περιλαμβάνουν την έννοια ότι περιλαμβάνουν 404 00:20:22,940 --> 00:20:26,100 θα αντιγράψετε και να επικολλήσετε μόνο την κεφαλίδα αρχείο για τα πρωτότυπα συναρτήσεων ή 405 00:20:26,100 --> 00:20:27,930 ό, τι με τους ορισμούς του τύπου. 406 00:20:27,930 --> 00:20:30,590 Αλλά χρειάζονται πραγματικά συμβαίνει να μας πάρετε τον κώδικα. 407 00:20:30,590 --> 00:20:33,280 >> Έτσι, μπορείτε να σκεφτείτε από το ως εισάγουν κάποιο κώδικα. 408 00:20:33,280 --> 00:20:37,960 Έτσι, κάπου στην ενότητα Node.js σύστημα ή οτιδήποτε άλλο, έχουν όλα αυτά 409 00:20:37,960 --> 00:20:40,790 Κώδικα διακομιστή HTTP, έτσι είμαι απλά θελκτικός για τις δικές μου 410 00:20:40,790 --> 00:20:43,130 προσωπική χρήση σε αυτό το πρόγραμμα. 411 00:20:43,130 --> 00:20:44,260 Εντάξει; 412 00:20:44,260 --> 00:20:46,930 >> Έτσι, τότε έχω αυτή τη λειτουργία ότι έχω γράψει. 413 00:20:46,930 --> 00:20:50,330 Και πρόσεξα ότι δεν χρειάζεται να καθορίσετε ο τύπος επιστροφής ή το είδος της 414 00:20:50,330 --> 00:20:51,140 επιχειρήματα και πάλι. 415 00:20:51,140 --> 00:20:54,440 Έτσι, το είδος χαλαρής πληκτρολογήσει αυτό το είδος της αίσθησης. 416 00:20:54,440 --> 00:20:57,290 Δύο επιχειρήματα που παίρνει μέσα, η αίτηση και την απάντηση. 417 00:20:57,290 --> 00:21:02,080 Έτσι, αυτό είναι εννοιολογικά κάτι σαν γνωστό από την εικόνα που είχαμε 418 00:21:02,080 --> 00:21:05,280 στην οθόνη πριν, διότι έχουμε αυτό το αίτημα που έχουμε 419 00:21:05,280 --> 00:21:06,410 έχουν από το χρήστη. 420 00:21:06,410 --> 00:21:09,170 Και τότε έχουμε μια απάντηση που μπορούμε να γράψουμε τα πράγματα με. 421 00:21:09,170 --> 00:21:15,060 >> Έτσι, η πρώτη γραμμή αυτή κάνει res.writeHead 200 και στη συνέχεια αυτό 422 00:21:15,060 --> 00:21:17,070 τύπο περιεχομένου απλού κειμένου. 423 00:21:17,070 --> 00:21:19,300 Οπότε ας το κομμάτι αυτό, εκτός λίγο. 424 00:21:19,300 --> 00:21:22,340 Οπότε ας επικεντρωθεί στην res.write για λίγο. 425 00:21:22,340 --> 00:21:28,420 Έτσι γράφουν είναι βασικά, και να γράψει το κεφάλι, είναι απλώς τρόποι για να είδος γράψουν 426 00:21:28,420 --> 00:21:29,960 πράγματα για την απάντηση. 427 00:21:29,960 --> 00:21:30,770 Εντάξει; 428 00:21:30,770 --> 00:21:36,230 Έτσι γράφω το κεφάλι, αν κάποιος θυμάται από τη διάλεξη HTTP, κάνετε εσείς 429 00:21:36,230 --> 00:21:39,940 θυμηθείτε κεφαλίδες κατά τη κορυφή του πράγματος HTTP; 430 00:21:39,940 --> 00:21:43,580 Γιατί λοιπόν να μην μπορώ απλά demo κεφαλίδες πραγματικά γρήγορα. 431 00:21:43,580 --> 00:21:44,640 Θα ήταν ότι είναι χρήσιμη; 432 00:21:44,640 --> 00:21:45,500 Ή θα πρέπει να έχουμε ακριβώς το είδος του - 433 00:21:45,500 --> 00:21:46,070 OK. 434 00:21:46,070 --> 00:21:46,740 Σίγουρα. 435 00:21:46,740 --> 00:21:52,340 >> Έτσι, όταν το πρόγραμμα περιήγησης πηγαίνει στο google.com ή κάτι τέτοιο, 436 00:21:52,340 --> 00:21:54,250 υπάρχει πραγματικά λίγο περισσότερο - 437 00:21:54,250 --> 00:21:55,380 αυτό είναι σαν ένα μυστικό - 438 00:21:55,380 --> 00:21:58,340 υπάρχει σαν μια μικρή περισσότερες πληροφορίες που έρχεται μέσω του σωλήνα από ό, τι ακριβώς 439 00:21:58,340 --> 00:22:00,180 η μικρή έρευνα και τα πάντα. 440 00:22:00,180 --> 00:22:03,550 Έτσι για να σας δείξω αυτό, Πάω να χρησιμοποιήσετε ένα πρόγραμμα που ονομάζεται Curl. 441 00:22:03,550 --> 00:22:04,260 Εντάξει; 442 00:22:04,260 --> 00:22:08,020 Έτσι, αυτό είναι κάτι που μπορείτε να εκτελέσετε γραμμή εντολών Mac OSX σας ή στο 443 00:22:08,020 --> 00:22:09,830 συσκευής ή οτιδήποτε άλλο. 444 00:22:09,830 --> 00:22:17,050 Και έτσι, αν κάνω Curl HTTP google.com, Πάω να δω το HTML. 445 00:22:17,050 --> 00:22:21,230 Και αυτό είναι, για να είμαστε δίκαιοι, μόνο η HTML που είδος σας λέει να 446 00:22:21,230 --> 00:22:24,695 ανακατεύθυνση στο www αν ο browser σας δεν χειριστεί αυτόματα το 447 00:22:24,695 --> 00:22:27,110 ανακατεύθυνση. 448 00:22:27,110 --> 00:22:33,390 >> Έτσι, αυτό είναι μόνο HTML, αλλά Πάω για να προσθέσετε αυτό το ενωτικό Curl έχω επισημάνει. 449 00:22:33,390 --> 00:22:33,600 Εντάξει; 450 00:22:33,600 --> 00:22:35,600 Και αυτό πρόκειται να δείξει με τις κεφαλίδες. 451 00:22:35,600 --> 00:22:40,640 Έτσι, αυτό είναι, επίσης, τις πληροφορίες που έρχεται μέσα, όταν έχω την απάντηση αυτή. 452 00:22:40,640 --> 00:22:41,260 Εντάξει; 453 00:22:41,260 --> 00:22:45,320 >> Έτσι, στην κορυφή, θα δείτε αυτό HTTP 301 εγκατασταθεί μόνιμα. 454 00:22:45,320 --> 00:22:49,470 Και αυτό είναι το είδος της σημαντική, διότι αυτό αναφέρεται στον κωδικό κατάστασης. 455 00:22:49,470 --> 00:22:53,750 Έτσι, το 301 εδώ είναι ο κωδικός κατάστασης, το οποίο είναι βασικά ακριβώς ένας ακέραιος 456 00:22:53,750 --> 00:22:57,750 που λέει το πρόγραμμα περιήγησης ή όποιος είναι διαβάζετε αυτό, αν προσποιούνται ότι 457 00:22:57,750 --> 00:23:01,460 είστε ένας browser και εσείς βλέποντας αυτό, βασικά τώρα αν κοιτάξετε 458 00:23:01,460 --> 00:23:04,960 αυτό και βλέπετε ένα 301, ξέρεις έχω να κάνει κάτι ιδιαίτερο με βάση 459 00:23:04,960 --> 00:23:08,810 301, ή κάτι το ιδιαίτερο συνέβη με βάση το 301. 460 00:23:08,810 --> 00:23:12,640 Γι 'αυτό λέει μετακινηθεί μόνιμα. 461 00:23:12,640 --> 00:23:17,700 >> Και στη συνέχεια, βασικά, έχουμε μια δέσμη των βασικών ζευγών αξίας. 462 00:23:17,700 --> 00:23:22,100 Έτσι παίρνουμε τη θέση είναι www.google.com. 463 00:23:22,100 --> 00:23:25,190 Και στη συνέχεια το είδος του όλα αυτά τα άλλα πράγματα, αλλά βασικά, ποια είναι η θέση είναι 464 00:23:25,190 --> 00:23:29,662 ρητό είναι η νέα θέση είναι στο www.google.com. 465 00:23:29,662 --> 00:23:33,800 Έτσι τώρα, αν πάτε στο google.com, θα είστε είδος δείτε το είδος του προγράμματος περιήγησης της αναλαμπής 466 00:23:33,800 --> 00:23:38,770 για ένα δευτερόλεπτο και στη συνέχεια να σας ανακατευθύνει δεξιά πίσω στο www.google.com. 467 00:23:38,770 --> 00:23:41,840 Έτσι, οι απαντήσεις μπορούν να περιέχουν αυτές οι κεφαλίδες. 468 00:23:41,840 --> 00:23:43,330 >> Και μερικά πράγματα που πρέπει να επισημάνουμε. 469 00:23:43,330 --> 00:23:46,890 Έτσι, ας πούμε ότι ήταν πραγματικά επιτυχημένη σε επίσκεψη σε μια ιστοσελίδα. 470 00:23:46,890 --> 00:23:49,040 Έτσι, επιτρέψτε μου να πάω σε - 471 00:23:49,040 --> 00:23:51,080 τι είναι ένα καλό δικτυακό τόπο; 472 00:23:51,080 --> 00:23:53,285 Είμαι κακός στη σκέψη της καλής δικτυακούς τόπους επί τόπου. 473 00:23:53,285 --> 00:23:53,640 >> ΚΟΙΝΟ: Wikipedia. 474 00:23:53,640 --> 00:23:54,160 >> KEVIN SCHMID: OK. 475 00:23:54,160 --> 00:23:56,040 Ας κάνουμε Wikipedia. 476 00:23:56,040 --> 00:23:58,680 Εδώ, λοιπόν, είχε μετακινηθεί. 477 00:23:58,680 --> 00:23:59,240 Ω περιμένετε. 478 00:23:59,240 --> 00:24:00,160 Ήμουν; 479 00:24:00,160 --> 00:24:00,890 Ναι, ήμουν. 480 00:24:00,890 --> 00:24:01,100 OK. 481 00:24:01,100 --> 00:24:03,005 Έτσι έχω να κάνω www. 482 00:24:03,005 --> 00:24:06,006 Έτσι, Πάω να κάνω www. 483 00:24:06,006 --> 00:24:09,680 Και όπως μπορείτε να δείτε, εδώ είναι όλα τα HTML ότι ο browser θα επεξεργάζεται 484 00:24:09,680 --> 00:24:10,910 για την Wikipedia. 485 00:24:10,910 --> 00:24:14,055 >> Αλλά αν συνεχίσετε την κύλιση μέχρι εδώ, τι θα δούμε στην κορυφή - 486 00:24:14,055 --> 00:24:17,800 wow, υπάρχει μια πολύ HTML για την Wikipedia - 487 00:24:17,800 --> 00:24:22,550 αλλά αυτό που μπορώ να δω στην κορυφή είναι εδώ αυτός ο κώδικας 200 κατάσταση, σε αντίθεση με το 488 00:24:22,550 --> 00:24:24,570 301 που είδα νωρίτερα. 489 00:24:24,570 --> 00:24:27,100 Και παρατηρήσετε ότι έχει μια ωραία φιλικό OK δίπλα του. 490 00:24:27,100 --> 00:24:29,470 Έτσι, αυτό είναι σαν το καλό κώδικα κατάστασης. 491 00:24:29,470 --> 00:24:31,160 >> Μήπως ότι 200 ​​αριθμός φαίνεται γνωστό; 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 Ναι, γιατί όταν έκανα simpler.js, Έγραψα ένα 200 εκεί. 494 00:24:39,880 --> 00:24:43,290 Έτσι, αυτό είναι βασικά λέγοντας πω την περιήγησης ή όποιος προσπαθεί να πάρει για να 495 00:24:43,290 --> 00:24:45,440 αυτό ότι ήταν επιτυχής. 496 00:24:45,440 --> 00:24:49,040 Ή ότι το είδος του όπως εμείς ήταν πάρα πολύ επιτυχής. 497 00:24:49,040 --> 00:24:54,320 >> Και υπάρχει αυτό το είδος της ειδικής σύνταξης σε Javascript για το χαρακτηρισμό 498 00:24:54,320 --> 00:24:59,870 χάρτης αυτών των κλειδιών, όπως τον τύπο περιεχομένου και αυτές οι τιμές, όπως απλό κείμενο. 499 00:24:59,870 --> 00:25:03,780 Έτσι, αν δείτε την απάντηση ότι πήρε πίσω από την Wikipedia πριν, - 500 00:25:03,780 --> 00:25:06,200 Πάω να προσπαθήσουμε να μετακινηθείτε μέχρι λίγο πιο γρήγορα - 501 00:25:06,200 --> 00:25:09,900 έχετε αυτά τα κλειδιά, όπως ο εξυπηρετητής και αυτές οι τιμές Apache. 502 00:25:09,900 --> 00:25:12,120 Έτσι έχετε τα κλειδιά και τις αξίες. 503 00:25:12,120 --> 00:25:15,930 Και μπορείτε να καθορίσετε αυτό Κόμβο τι πρέπει να στείλει πίσω. 504 00:25:15,930 --> 00:25:19,380 >> Έτσι, αυτό είναι πραγματικά το είδος της, σε ορισμένες τρόπους, και κατά κάποιο τρόπο δεν είναι 505 00:25:19,380 --> 00:25:23,170 πραγματικά, αλλά αυτό είναι λίγο χαμηλότερο επίπεδο από τον κώδικα PHP που μπορεί να είναι 506 00:25:23,170 --> 00:25:26,980 γραπτώς για την P έθεσε επτά, επειδή η PHP και Apache είδος αναλάβει τη φροντίδα του κάποια 507 00:25:26,980 --> 00:25:28,150 από αυτά τα πράγματα για σας. 508 00:25:28,150 --> 00:25:32,520 Στην PHP, μπορείτε να παρακάμψετε την προεπιλεγμένη συμπεριφορά γράφοντας το δικό σας κεφαλίδες. 509 00:25:32,520 --> 00:25:35,520 Αλλά για τους σκοπούς του παρόντος, έχουμε να γράψουν τη δική μας κεφαλίδες. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> Έτσι κάνει ότι η γραμμή έχει νόημα να όλους, η γραμμή της κεφαλής εγγραφής; 512 00:25:41,105 --> 00:25:41,380 OK. 513 00:25:41,380 --> 00:25:42,280 Awesome. 514 00:25:42,280 --> 00:25:45,870 >> Έτσι, στη συνέχεια, αυτό που κάνω είναι να τερματίσω την απάντηση λέγοντας hello world. 515 00:25:45,870 --> 00:25:47,040 OK. 516 00:25:47,040 --> 00:25:49,920 Αλλά αυτό είναι μόνο μια λειτουργία ονομάζεται διαχειριστή αιτήσεων. 517 00:25:49,920 --> 00:25:53,510 Έτσι, τώρα έχω πραγματικά να κάνει το είδος της κάτι με αυτή τη λειτουργία, έτσι δεν είναι; 518 00:25:53,510 --> 00:25:59,170 >> Έτσι, εδώ αυτό που κάνω είναι υπάρχει αυτή η γραμμή η οποία δεν ισούται διακομιστή var 519 00:25:59,170 --> 00:26:03,530 HTTP.create διακομιστή, και στη συνέχεια θα περάσει στην αίτηση εξυπηρέτησης. 520 00:26:03,530 --> 00:26:06,080 Έτσι, αυτό είναι το είδος του κόμβου τρόπος για τη δημιουργία ενός διακομιστή. 521 00:26:06,080 --> 00:26:08,790 Και παρατηρήσετε ότι είμαι διέρχεται στην αίτηση εξυπηρέτησης. 522 00:26:08,790 --> 00:26:12,290 Έτσι, αυτό λέει την createServer λειτουργία που θέλω να μου κάνει μια 523 00:26:12,290 --> 00:26:16,270 διακομιστή, και όταν ο server λαμβάνει μια απάντηση, θα πρέπει να καλέσετε αυτό 524 00:26:16,270 --> 00:26:18,680 ζητήσει συνάρτηση handler. 525 00:26:18,680 --> 00:26:18,990 Εντάξει; 526 00:26:18,990 --> 00:26:22,290 >> Έτσι, αυτή τη γραμμή λίγο πολύ τελειώνει αμέσως. 527 00:26:22,290 --> 00:26:28,780 Έτσι, η σειρά server var γίνεται σωστά μετά το κάνετε αυτό λίγο πολύ. 528 00:26:28,780 --> 00:26:31,770 Θέλω να πω, θα πρέπει να δημιουργήσει κάποια εσωτερική κατάσταση να γνωρίζουν ότι θα πρέπει να 529 00:26:31,770 --> 00:26:35,400 καλούν την εν λόγω λειτουργία διαχειριστή αιτήσεων, αλλά δεν πρόκειται να καθίσει εκεί και 530 00:26:35,400 --> 00:26:37,730 λόγο έχει ο χρήστης έστειλε με αίτηση ακόμα; 531 00:26:37,730 --> 00:26:39,270 Μου έστειλε ένα αίτημα ακόμα ο χρήστης; 532 00:26:39,270 --> 00:26:40,780 Γι 'αυτό δεν μπλοκάρει. 533 00:26:40,780 --> 00:26:41,650 Εντάξει; 534 00:26:41,650 --> 00:26:46,120 >> Έτσι, αυτό που θα κάνουμε είναι ουσιαστικά τώρα αποθηκεύει ένα δείκτη σε αυτόν τον κώδικα, 535 00:26:46,120 --> 00:26:49,670 αυτή η συνάρτηση handler αίτημα, και, στη συνέχεια, θα τρέξει τον κώδικα όταν κάποιος 536 00:26:49,670 --> 00:26:52,170 κάνει μια αίτηση. 537 00:26:52,170 --> 00:26:54,120 Και τότε θα κάνουμε server.listen. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> Το 1337 είναι αρκετά αυθαίρετη. 540 00:26:59,960 --> 00:27:02,285 Δεν είχα κανένα ιδιαίτερο λόγο για να πάρει τον αριθμό αυτό. 541 00:27:02,285 --> 00:27:03,860 Ήταν εντελώς τυχαία. 542 00:27:03,860 --> 00:27:07,010 Αλλά αυτό καθορίζει μόνο το λιμάνι. 543 00:27:07,010 --> 00:27:10,640 Έτσι, οι περισσότεροι διακομιστές web θα δείτε ότι χρησιμοποιεί τη θύρα 80, διότι αυτό είναι το είδος 544 00:27:10,640 --> 00:27:11,810 σαν της σύμβασης. 545 00:27:11,810 --> 00:27:16,170 Έτσι, αν πάω σε κάτι σαν, Δεν ξέρω, Wikipedia.org, 546 00:27:16,170 --> 00:27:17,700 και έβαλα παχέος εντέρου 8 - 547 00:27:17,700 --> 00:27:18,610 oh wow, δεν μπορείτε να δείτε αυτό. 548 00:27:18,610 --> 00:27:19,370 Λυπάμαι. 549 00:27:19,370 --> 00:27:21,820 Αλλά αν το κάνω Wikipedia - 550 00:27:21,820 --> 00:27:24,810 Θα το γράψω εδώ ακριβώς έτσι ώστε Είναι σαφές από την κάμερα. 551 00:27:24,810 --> 00:27:29,150 Αλλά αν πάρω αυτό σε ένα πρόγραμμα περιήγησης με άνω και κάτω τελεία 80, που καθορίζει πηγαίνετε στο 552 00:27:29,150 --> 00:27:31,430 Wikipedia.org στη θύρα 80. 553 00:27:31,430 --> 00:27:36,200 Έτσι είναι όπως το πώς οι Ηνωμένες Πολιτείες έχουν πολλαπλές θύρες όπως, όπου μπορείτε να στείλετε 554 00:27:36,200 --> 00:27:37,440 τα πράγματα με το είδος του. 555 00:27:37,440 --> 00:27:40,730 Έτσι είναι σαν να πηγαίνετε σε αυτό το συγκεκριμένο τοποθετείτε σε αυτόν το διακομιστή. 556 00:27:40,730 --> 00:27:40,990 OK. 557 00:27:40,990 --> 00:27:45,730 >> Γι 'αυτό ακριβώς επέλεξα 1337. 558 00:27:45,730 --> 00:27:47,910 Υπάρχει μια ολόκληρη σειρά των αριθμών ότι μπορείτε να επιλέξετε. 559 00:27:47,910 --> 00:27:50,390 Αυτό δεν ήταν τελείως ξεχωριστό. 560 00:27:50,390 --> 00:27:54,560 >> Αλλά τι Πάω να κάνουμε τώρα είναι Πάω να τρέξει κόμβου. 561 00:27:54,560 --> 00:27:59,730 Επιτρέψτε μου πραγματικότητα αρχίζει ότι ένα ζευγάρι γραμμές προς τα κάτω έτσι ώστε να μπορείτε να το δείτε. 562 00:27:59,730 --> 00:28:03,130 Πάω να κάνω κόμβου, και είμαι πρόκειται να τρέξει simpler.js. 563 00:28:03,130 --> 00:28:06,880 Και εμείς θα μιλήσουμε για το πώς να πάρει Κόμβου που έχει συσταθεί σε λίγο. 564 00:28:06,880 --> 00:28:09,350 Αλλά τώρα είναι απλά εκτελεί το διακομιστή. 565 00:28:09,350 --> 00:28:14,360 >> Έτσι, ένα πράγμα μπορούμε να δοκιμάσουμε το οποίο δεν μπορεί να να είναι τόσο συναρπαστικό είναι ότι μπορούμε πραγματικά 566 00:28:14,360 --> 00:28:16,300 προσπαθούν να έχουν πρόσβαση σε Curl. 567 00:28:16,300 --> 00:28:20,680 Έτσι, μπορώ να κάνω Curl, και μου μηχανής είναι η τοπική υποδοχής. 568 00:28:20,680 --> 00:28:24,600 Θα δείτε επίσης αυτό γραμμένο όπως αυτό μερικές φορές. 569 00:28:24,600 --> 00:28:29,810 Τοπική υποδοχής και 127.0.0.1 είναι το είδος σαν τον υπολογιστή του σπιτιού σας. 570 00:28:29,810 --> 00:28:33,180 Έτσι είναι σαν να μιλάμε για το δικό σας υπολογιστή. 571 00:28:33,180 --> 00:28:33,760 OK. 572 00:28:33,760 --> 00:28:36,030 >> Και τότε μπορώ να πω 1337. 573 00:28:36,030 --> 00:28:39,630 Έτσι, αν μπορώ να εκτελέσω αυτήν τη γραμμή κώδικα, λέει hello world. 574 00:28:39,630 --> 00:28:44,050 Και αν ήθελα να δω αυτό το πράγμα που απλό κείμενο είχε τύπο περιεχομένου ή 575 00:28:44,050 --> 00:28:46,560 οτιδήποτε άλλο, θα μπορούσα να βάλω ακόμη και αυτό εδώ. 576 00:28:46,560 --> 00:28:48,810 Και παρατηρήσετε ότι λέει OK. 577 00:28:48,810 --> 00:28:50,810 Και έχω απλό κείμενο. 578 00:28:50,810 --> 00:28:53,140 Και έπειτα υπάρχει το είδος του όλα αυτά άλλων πράγματα που κόμβου θα προσθέσει στο 579 00:28:53,140 --> 00:28:54,440 εκεί για μένα. 580 00:28:54,440 --> 00:28:55,700 Αυτό δεν είναι εξαιρετικά σημαντικό. 581 00:28:55,700 --> 00:28:58,230 >> Θέλω να πω, υπάρχουν κάποια τεχνικά πτυχές που είναι σε είδος 582 00:28:58,230 --> 00:29:02,280 δροσερό για να μιλήσει για, αλλά απλά για να δείξει σας, θα ήθελα επίσης να έχουν την εξουσία να 583 00:29:02,280 --> 00:29:03,070 αλλάξετε αυτές τις γύρω. 584 00:29:03,070 --> 00:29:06,280 Έτσι, μπορώ να προσθέσω ένα μάτσο πράγματα όπως αυτό. 585 00:29:06,280 --> 00:29:11,780 Και στη συνέχεια, τώρα, αν κοιτάξουμε στον μου εξόδου, θα είναι ότι. 586 00:29:11,780 --> 00:29:19,740 Έτσι, αυτές οι κεφαλίδες, ορισμένα πράγματα σε browsers και τέτοια πράγματα. 587 00:29:19,740 --> 00:29:23,040 >> Και κεφαλίδες μπορεί να πει ουσιαστικά ένα πρόγραμμα περιήγησης πώς να ανταποκριθούν σε κάτι. 588 00:29:23,040 --> 00:29:26,280 Αν έχετε ποτέ ακούσει για τα cookies πριν, ή αν έχετε ποτέ ενοχλημένος 589 00:29:26,280 --> 00:29:29,330 από μια ιστοσελίδα για τη cookies, ή ενεργοποιημένο μπλοκ μπισκότο ή 590 00:29:29,330 --> 00:29:30,320 κάτι τέτοιο. 591 00:29:30,320 --> 00:29:33,040 Μπορείτε να ρυθμίσετε πραγματικά cookies σε αυτές τις κεφαλίδες. 592 00:29:33,040 --> 00:29:36,990 Έτσι λένε ένα πρόγραμμα περιήγησης πώς να συμπεριφορά σε ορισμένες περιπτώσεις. 593 00:29:36,990 --> 00:29:37,750 OK. 594 00:29:37,750 --> 00:29:40,310 >> Έτσι, αυτό ήταν simpler.js. 595 00:29:40,310 --> 00:29:42,780 Μήπως κάποιος έχει απορίες σε αυτό το αρχείο πηγαίου κώδικα; 596 00:29:42,780 --> 00:29:45,420 597 00:29:45,420 --> 00:29:45,610 OK. 598 00:29:45,610 --> 00:29:46,490 Cool. 599 00:29:46,490 --> 00:29:50,780 >> Οπότε ας αφαίρεση του r από αυτό και να δούμε simple.js. 600 00:29:50,780 --> 00:29:53,010 Έτσι, αυτό είναι λίγο πολύ το ίδιο πρόγραμμα. 601 00:29:53,010 --> 00:29:56,030 Απλά το έγραψα λίγο διαφορετικά γιατί ήθελα να ταξινομήσετε του highlight 602 00:29:56,030 --> 00:29:57,850 ορισμένες δυνατότητες της JavaScript. 603 00:29:57,850 --> 00:30:03,880 >> Έτσι, παρατηρούμε ότι το αίτημα χειρισμού λειτουργία έχει εξαφανιστεί εντελώς. 604 00:30:03,880 --> 00:30:05,800 Αχ yep, είχατε μια ερώτηση; 605 00:30:05,800 --> 00:30:08,200 >> ΚΟΙΝΟ: Ναι, τα επιχειρήματα που μεταβιβάζονται προς εκείνη 606 00:30:08,200 --> 00:30:10,120 λειτουργία, ποια είναι αυτά; 607 00:30:10,120 --> 00:30:12,050 >> KEVIN SCHMID: Έτσι αυτά είναι JavaScript αντικείμενα. 608 00:30:12,050 --> 00:30:15,230 Στην τεκμηρίωση Node.js, το βασικά λέει ό, τι είναι οι μέθοδοι 609 00:30:15,230 --> 00:30:15,910 διατίθεται σε αυτές. 610 00:30:15,910 --> 00:30:19,602 Εμείς απλώς τυχαίνει να έχουν την πρόσβαση σε η μέθοδος αυτή ονομάζεται κεφαλή εγγραφής και το τέλος 611 00:30:19,602 --> 00:30:20,730 και τέτοια πράγματα. 612 00:30:20,730 --> 00:30:22,590 Αλλά υπάρχει ένα σωρό περισσότερες μεθόδους. 613 00:30:22,590 --> 00:30:27,670 >> Και για παράδειγμα, όπως ένα από αυτά ιδίως όσον αφορά rec, μπορείτε να κάνετε 614 00:30:27,670 --> 00:30:34,540 κάτι σαν rec.method οποία θα να σας πω αν είναι ένα HTTP πάρει ή 615 00:30:34,540 --> 00:30:36,780 HTTP μετά τις αιτήσεις και τέτοια πράγματα. 616 00:30:36,780 --> 00:30:39,100 Οπότε υπάρχουν όλα τα είδη των διαφορετικών ιδιότητες, αλλά είναι και οι δύο 617 00:30:39,100 --> 00:30:42,560 JavaScript αντικείμενα, και το μόνο που έχουν λειτουργίες που συνδέονται με αυτά που σας 618 00:30:42,560 --> 00:30:43,850 να γράψετε πράγματα που πρέπει να. 619 00:30:43,850 --> 00:30:45,520 Εντάξει; 620 00:30:45,520 --> 00:30:49,030 >> Έτσι, παρατηρούμε ότι το αίτημα χειρισμού είναι εντελώς φύγει. 621 00:30:49,030 --> 00:30:52,650 Όμως, ο κώδικας που είχα στο αίτημα handler είναι ακόμα εκεί. 622 00:30:52,650 --> 00:30:56,520 Εξακολουθώ να έχω αυτό το res.writeHead και εξακολουθώ να έχω αυτό το res.end. 623 00:30:56,520 --> 00:31:00,270 Και τι είναι αυτό ένα παράδειγμα σε JavaScript είναι η ιδέα ενός 624 00:31:00,270 --> 00:31:01,460 ανώνυμη συνάρτηση. 625 00:31:01,460 --> 00:31:04,180 και ανώνυμα είναι σαν ένα ταιριαστό όνομα γι 'αυτό, γιατί δεν το κάνει κυριολεκτικά 626 00:31:04,180 --> 00:31:05,180 έχει ένα όνομα. 627 00:31:05,180 --> 00:31:07,900 Δεν υπάρχει αίτημα λειτουργίας χειρισμού εκεί μέσα. 628 00:31:07,900 --> 00:31:10,110 >> Δεν έχει όνομα, αλλά ακόμα είναι λαμβάνοντας ένα επιχείρημα. 629 00:31:10,110 --> 00:31:12,250 Έτσι, ακόμα πήρα rec και ΑΠΕ. 630 00:31:12,250 --> 00:31:16,180 Και ακόμα έχω τον κωδικό. 631 00:31:16,180 --> 00:31:18,930 Αυτό είναι απολύτως εντάξει JavaScript κώδικα. 632 00:31:18,930 --> 00:31:22,540 Έτσι, μπορώ να δηλώσω μια λειτουργία χωρίς δίνοντας ρητά ένα όνομα. 633 00:31:22,540 --> 00:31:24,250 Είναι μια μικρή σύγχυση κατά την πρώτη. 634 00:31:24,250 --> 00:31:26,230 Υπάρχουν μερικά χρήσιμα πράγματα, όπως ότι μπορείτε να κάνετε με 635 00:31:26,230 --> 00:31:28,450 αυτά τα ανώνυμα λειτουργίες. 636 00:31:28,450 --> 00:31:32,100 Μήπως κάποιος έχει απορίες σχετικά με αυτό, ή είναι εντάξει απλά, για τώρα, 637 00:31:32,100 --> 00:31:34,130 το είδος ακριβώς αποδεχθεί ότι θα κάνουμε το ίδιο πράγμα; 638 00:31:34,130 --> 00:31:36,700 639 00:31:36,700 --> 00:31:37,125 Ναι; 640 00:31:37,125 --> 00:31:38,680 >> ΚΟΙΝΟ: Οι λειτουργίες πρώτη τάξη σε JavaScript; 641 00:31:38,680 --> 00:31:41,020 >> KEVIN SCHMID: Θα είναι η πρώτη τάξη στην JavaScript. 642 00:31:41,020 --> 00:31:45,490 Και απλά να ξέρετε ότι αυτές οι έννοιες των περνώντας σε μια ανώνυμη συνάρτηση, όπως 643 00:31:45,490 --> 00:31:49,600 Αυτό ισχύει και για το ότι σας JavaScript μπορεί να γράψει στο τελικό σχέδιο σας για 644 00:31:49,600 --> 00:31:51,260 ο web browser πάρα πολύ. 645 00:31:51,260 --> 00:31:56,700 Έτσι, για παράδειγμα, στη JavaScript στο browser σας, είναι επίσης κάπως εκδήλωση 646 00:31:56,700 --> 00:32:00,680 οδηγείται υπό την έννοια ότι αυτό που θα έχουν είναι όταν ο χρήστης κάνει κλικ σε αυτό το 647 00:32:00,680 --> 00:32:02,640 κουμπί, θέλω να εκτελέσετε αυτόν τον κώδικα. 648 00:32:02,640 --> 00:32:07,070 >> Έτσι είναι το ίδιο είδος των ιδεών της πλευρά του πελάτη, όταν ένα κλικ του ποντικιού ή 649 00:32:07,070 --> 00:32:09,870 το ποντίκι πάνω από κάποιο εικόνα στον υπολογιστή σας ιστοσελίδα, εκτελέσετε αυτόν τον κώδικα. 650 00:32:09,870 --> 00:32:11,350 Αυτό μπορεί να ισχύει για servers. 651 00:32:11,350 --> 00:32:16,380 Έτσι, αυτό είναι κάτι σαν το συναρπαστικό λόγος για τον οποίο JavaScript είναι μια πραγματικά 652 00:32:16,380 --> 00:32:19,810 κατάλληλο ή μερικοί άνθρωποι πιστεύουν ότι είναι μια κατάλληλη γλώσσα για αυτό το είδος της 653 00:32:19,810 --> 00:32:22,530 εξυπηρετητή του οδηγού εκδήλωση επειδή έχετε αυτά τα ανώνυμα λειτουργίες. 654 00:32:22,530 --> 00:32:26,150 Έχετε την όλη ιδέα της αυτό το κώδικα ασύγχρονης. 655 00:32:26,150 --> 00:32:27,060 OK. 656 00:32:27,060 --> 00:32:30,360 Ο καθένας έχει οποιεσδήποτε ερωτήσεις; 657 00:32:30,360 --> 00:32:30,470 >> OK. 658 00:32:30,470 --> 00:32:33,440 Έτσι, αυτό ήταν simple.js. 659 00:32:33,440 --> 00:32:38,070 Ας ρίξουμε μια ματιά σε ένα πιο ή ένα ζευγάρι περισσότερο. 660 00:32:38,070 --> 00:32:42,040 Έτσι, αυτό είναι sleep.js. 661 00:32:42,040 --> 00:32:47,160 Έτσι, είναι κάποιος εξοικειωμένος με η C λειτουργία ύπνου; 662 00:32:47,160 --> 00:32:50,936 Από ίσως μία από τις προηγούμενες διαλέξεις ή κάτι τέτοιο; 663 00:32:50,936 --> 00:32:54,650 >> Έτσι, βασικά, μπορείτε να περάσετε το πιστεύω ότι μια αριθμό των δευτερολέπτων ή αν είστε με τη χρήση U 664 00:32:54,650 --> 00:32:57,080 κοιμηθείτε μια σειρά από χιλιοστά του δευτερολέπτου ή νανοδευτερόλεπτα. 665 00:32:57,080 --> 00:33:00,450 Και βασικά το πρόγραμμα θα σταματήσει μόνο τρέχει για το εν λόγω χρονικό διάστημα. 666 00:33:00,450 --> 00:33:01,280 Σωστά; 667 00:33:01,280 --> 00:33:06,970 Και τότε θα ξυπνήσει τελικά και τότε θα συνεχίσουμε απλά τρέχει 668 00:33:06,970 --> 00:33:08,340 το πρόγραμμα. 669 00:33:08,340 --> 00:33:12,740 >> Έτσι, αυτό το είδος του διακομιστή δίνει η εντύπωση του ύπνου. 670 00:33:12,740 --> 00:33:17,580 Έτσι, παρατηρούμε ότι έχουμε το ίδιο res.writeHead 200 με την επικεφαλίδα 671 00:33:17,580 --> 00:33:22,130 πριν, αλλά στη συνέχεια εμείς την αποκαλούμε αυτό λειτουργία που ονομάζεται σύνολο του χρονικού ορίου. 672 00:33:22,130 --> 00:33:26,170 Καθορισμός χρόνου αναμονής είναι επίσης διαθέσιμο σε web browser σας Google Chrome 673 00:33:26,170 --> 00:33:28,000 ή Safari ή οτιδήποτε άλλο. 674 00:33:28,000 --> 00:33:31,720 Και βασικά αυτό που κάνει εδώ είναι αυτό που παίρνει σε μια λειτουργία. 675 00:33:31,720 --> 00:33:33,360 Ανακοίνωση, πάλι, είναι μια ανώνυμη συνάρτηση. 676 00:33:33,360 --> 00:33:36,310 Έτσι, αυτό είναι το είδος της δροσερό, επειδή είμαστε χρησιμοποιώντας μια ανώνυμη συνάρτηση εντός ενός 677 00:33:36,310 --> 00:33:38,950 ανώνυμη συνάρτηση που μπορεί να είναι λίγο περίεργο. 678 00:33:38,950 --> 00:33:42,270 >> Αλλά παίρνει αυτή τη λειτουργία, η οποία είναι λέγοντας ουσιαστικά - και ο τρόπος με τον 679 00:33:42,270 --> 00:33:47,430 έργων είναι 5.000 χιλιοστά του δευτερολέπτου, θέλω μπορείτε να εκτελέσετε αυτή τη λειτουργία η οποία 680 00:33:47,430 --> 00:33:50,830 μόλις τελειώνει η απάντηση και γράφει hey. 681 00:33:50,830 --> 00:33:56,730 Έτσι, αυτό δίνει την εντύπωση, όπως ύπνο, αλλά ο τρόπος που αυτό πράγματι 682 00:33:56,730 --> 00:33:59,780 λειτουργεί είναι ότι θα τρέχει μέσα αυτή η γραμμή πολύ γρήγορα. 683 00:33:59,780 --> 00:34:01,190 Εμείς απλά γράφοντας κάτι. 684 00:34:01,190 --> 00:34:03,780 Και τότε επίσης θα τρέχει μέσα αυτή η γραμμή πολύ γρήγορα. 685 00:34:03,780 --> 00:34:08,620 Έτσι δεν κάνουμε στην πραγματικότητα πρόκειται να περιμένετε πέντε δευτερόλεπτα. 686 00:34:08,620 --> 00:34:11,370 Εμείς απλά θα τρέξει αυτόν τον κώδικα αμέσως. 687 00:34:11,370 --> 00:34:14,219 >> Και έπειτα υπάρχει, και πάλι, αυτό το μικρό βρόχο γεγονός που έχει τώρα αυτό το πράγμα 688 00:34:14,219 --> 00:34:17,570 μητρώα που ουσιαστικά είναι απλώς συνεχώς πηγαίνει γύρω σε έναν κύκλο 689 00:34:17,570 --> 00:34:21,620 και κοιτάζοντας το ρολόι σε ένα ενιαίο το νήμα και το ρητό, έχει πέντε δευτερόλεπτα 690 00:34:21,620 --> 00:34:22,360 πέρασε ακόμα; 691 00:34:22,360 --> 00:34:26,409 Και στη συνέχεια, όταν βλέπει ότι το δεύτερο πλευρά έχει μετακινηθεί σαν πέντε δευτερόλεπτα ή 692 00:34:26,409 --> 00:34:29,190 οτιδήποτε άλλο, τότε ξυπνάει και λέει, Ω, τι πρέπει να κάνω; 693 00:34:29,190 --> 00:34:30,350 Α, θα πρέπει να εκτελέσετε αυτόν τον κώδικα. 694 00:34:30,350 --> 00:34:33,110 Και στη συνέχεια, πρόκειται να τρέχει res.end hey. 695 00:34:33,110 --> 00:34:35,360 >> Έτσι και πάλι, είμαστε ποτέ περιμένουν εδώ. 696 00:34:35,360 --> 00:34:38,590 Έτσι δεν είναι ότι αυτός ο κώδικας στο εσωτερικό της αυτή η λειτουργία πρόκειται να πάρει πέντε 697 00:34:38,590 --> 00:34:39,900 δευτερόλεπτα για να τρέξει. 698 00:34:39,900 --> 00:34:43,090 Ο κωδικός αυτός θα τρέξει λίγο πολύ ακαριαία, τουλάχιστον σε σχέση με 699 00:34:43,090 --> 00:34:46,139 οι πέντε δευτερολέπτων που μιλούσαμε νωρίτερα πριν. 700 00:34:46,139 --> 00:34:52,100 >> Έτσι απλά για να το αποδείξει αυτό στην πράξη, Μπορώ να κάνω Node.sleep.js. 701 00:34:52,100 --> 00:34:55,159 Και έκανα χαλάσουν κάτι; 702 00:34:55,159 --> 00:34:56,310 Ενδεχομένως. 703 00:34:56,310 --> 00:34:57,410 Λυπάμαι. 704 00:34:57,410 --> 00:34:59,530 Ας δούμε τι μπορούμε να κάνουμε για να διορθώσετε αυτό. 705 00:34:59,530 --> 00:35:10,830 706 00:35:10,830 --> 00:35:12,080 OK. 707 00:35:12,080 --> 00:35:15,460 708 00:35:15,460 --> 00:35:17,464 Έτσι, σίγουρα χρησιμοποιούν Node.js. 709 00:35:17,464 --> 00:35:19,440 Αστειεύομαι. 710 00:35:19,440 --> 00:35:19,570 OK. 711 00:35:19,570 --> 00:35:20,820 Μισό λεπτό. 712 00:35:20,820 --> 00:35:27,380 713 00:35:27,380 --> 00:35:27,900 OK. 714 00:35:27,900 --> 00:35:29,130 Ξέρω τι είναι. 715 00:35:29,130 --> 00:35:34,440 >> Έτσι, το θέμα είναι ότι σε άλλες καρτέλα μου εδώ, έτρεχα Κόμβος ήδη 716 00:35:34,440 --> 00:35:36,590 ότι η ίδια διεύθυνση, 1337. 717 00:35:36,590 --> 00:35:43,370 Έτσι, το σφάλμα ότι αυτό έριξε, αν κοιτάξουμε σε αυτό πραγματικό στενά, είναι η διεύθυνση στην 718 00:35:43,370 --> 00:35:45,180 χρήση, EADDRINUSE. 719 00:35:45,180 --> 00:35:47,970 Έτσι ήμουν ήδη χρησιμοποιούν 1337 εδώ. 720 00:35:47,970 --> 00:35:52,210 Έτσι, αν έχω κλείσει αυτό το off, και, στη συνέχεια, τώρα προσπαθήσει να τρέξει αυτό, ελπίζω, τα πάντα 721 00:35:52,210 --> 00:35:53,210 θα είναι μια χαρά. 722 00:35:53,210 --> 00:35:53,440 OK. 723 00:35:53,440 --> 00:35:57,020 Έτσι μπορείτε να έχετε μόνο ένα πράγμα είδος από ακρόαση στη θύρα ταυτόχρονα. 724 00:35:57,020 --> 00:35:59,660 Μια άλλη λύση θα ήταν για μένα να επεξεργαστείτε ακριβώς αυτό το πρόγραμμα και να κάνει 725 00:35:59,660 --> 00:36:02,370 αυτό είναι σαν 1338 ή κάτι τέτοιο όπως αυτό. 726 00:36:02,370 --> 00:36:04,100 >> Αλλά τώρα ο ύπνος λειτουργεί. 727 00:36:04,100 --> 00:36:06,400 Ας το δοκιμάσουμε στην πραγματικότητα στην το πρόγραμμα περιήγησης αυτήν τη φορά γιατί είναι μια 728 00:36:06,400 --> 00:36:09,080 μικρή ενθουσιώδη για να δείτε σε ένα τερματικό. 729 00:36:09,080 --> 00:36:13,560 Έτσι, είμαι απλώς πρόκειται να πάει με αυτό 127 Διεύθυνση και πάλι στο 1337. 730 00:36:13,560 --> 00:36:14,850 Και αν μπορείτε να το δείτε - 731 00:36:14,850 --> 00:36:18,050 Δεν ξέρω αν μπορείς - αλλά μου προγράμματος περιήγησης, λαμβάνοντας μια πολύ, πολύ καιρό 732 00:36:18,050 --> 00:36:20,600 χρόνο για να φορτώσει ή σαν πέντε δευτερόλεπτα. 733 00:36:20,600 --> 00:36:23,460 >> Και στη συνέχεια μετά από αυτό, τελικά έληξε την απάντηση. 734 00:36:23,460 --> 00:36:29,070 Και δεν μπορείτε να το δείτε γιατί το πράγμα μετακινείται πάνω από ένα μικρό, αλλά αν κάνω 735 00:36:29,070 --> 00:36:32,500 αυτό είναι λίγο μικρότερο, θα μπορεί να δει ότι λέει hey. 736 00:36:32,500 --> 00:36:35,130 Έτσι πήρα το hey, αλλά μετά από πέντε δευτερόλεπτα. 737 00:36:35,130 --> 00:36:38,510 Και θα μπορούσε να είναι λίγο καθαρότερο για να δείτε εδώ στο τερματικό, έτσι είμαι 738 00:36:38,510 --> 00:36:40,980 πρόκειται να κάνει μια - 739 00:36:40,980 --> 00:36:43,540 ας κάνουμε εδώ - 740 00:36:43,540 --> 00:36:48,370 ας κάνουμε Curl αυτή τη διεύθυνση πάλι με το 1337. 741 00:36:48,370 --> 00:36:50,820 Και εγώ ακριβώς το είδος του πρέπει να καθίσει εδώ για πέντε δευτερόλεπτα. 742 00:36:50,820 --> 00:36:53,760 Να σημειωθεί όμως ότι ο διακομιστής μπορεί να δεχθεί νέες απαντήσεις. 743 00:36:53,760 --> 00:36:54,940 Γι 'αυτό εκτυπώνει hey. 744 00:36:54,940 --> 00:36:58,720 >> Και το demo αυτό, βασικά αυτό που Μπορώ να κάνω σε αυτή την άλλη καρτέλα - 745 00:36:58,720 --> 00:37:02,640 οπότε ας πούμε ότι το κάνετε αυτό σε άλλη καρτέλα, Πάω να κάνω Curl και το ίδιο 746 00:37:02,640 --> 00:37:03,780 πράγμα ξανά. 747 00:37:03,780 --> 00:37:06,600 Και Πάω να προσπαθήσει να κλωτσήσει αυτά παιδιά μακριά την ίδια στιγμή. 748 00:37:06,600 --> 00:37:08,260 Έτσι, Πάω να το κάνετε αυτό, και είμαι πρόκειται να αγωνιστεί εδώ και είμαι 749 00:37:08,260 --> 00:37:09,650 πρόκειται να το ξανακάνω. 750 00:37:09,650 --> 00:37:14,030 >> Και ας το κάνει, έτσι ώστε να μπορεί να δει και τα δύο. 751 00:37:14,030 --> 00:37:20,250 Εκείνο το ένα τυπωμένο hey και ότι μία τυπωμένο hey σε όλη τη διαδρομή σε - 752 00:37:20,250 --> 00:37:22,550 ας κάνουμε πάλι το πείραμα. 753 00:37:22,550 --> 00:37:25,100 Στην πραγματικότητα, ας χρησιμοποιήσουμε αυτή τέχνασμα, αν αυτό είναι εντάξει. 754 00:37:25,100 --> 00:37:30,520 >> Έτσι, Πάω να χρησιμοποιήσετε ένα πράγμα κέλυφος που μου επιτρέπει να τρέξει βασικά δύο αντίγραφα 755 00:37:30,520 --> 00:37:32,630 αυτού του προγράμματος παράλληλα. 756 00:37:32,630 --> 00:37:36,070 Γι 'αυτό θα τρέξει το πρώτο πρόγραμμα και το δεύτερο πρόγραμμα παράλληλα. 757 00:37:36,070 --> 00:37:39,060 Έτσι τώρα, αν πατήσω Enter, πρόκειται να κάνει το αίτημα αυτό λίγο πολύ 758 00:37:39,060 --> 00:37:40,570 ακαριαία την ίδια στιγμή. 759 00:37:40,570 --> 00:37:42,620 Οπότε ας δώσει σε αυτό έναν πυροβολισμό. 760 00:37:42,620 --> 00:37:44,950 >> Έτσι, σήμερα παρατηρούμε ότι λέει δύο διαδικασίες. 761 00:37:44,950 --> 00:37:50,630 Και αν είστε περίεργοι, ότι 27.000 αριθμός είναι βασικά η διαδικασία ID. 762 00:37:50,630 --> 00:37:52,940 Και στη συνέχεια παρατηρήσετε, τύπωναν Hey ταυτόχρονα. 763 00:37:52,940 --> 00:37:56,820 Δεν ήταν σαν να έπρεπε να περιμένουν πέντε δευτερόλεπτα για ένα και στη συνέχεια μετά από αυτό, 764 00:37:56,820 --> 00:37:59,640 πέντε δευτερόλεπτα αργότερα να πάρει τη δεύτερη. 765 00:37:59,640 --> 00:38:03,300 Έτσι, αυτό είναι το είδος της, κατά κάποιο τρόπο, είναι δεν είναι πραγματικά απόδειξη, αλλά είναι 766 00:38:03,300 --> 00:38:07,390 διαισθητική απόδειξη ότι δεν είναι μόνο σαν να περιμένουν πέντε δευτερόλεπτα και κλείδωμα 767 00:38:07,390 --> 00:38:08,960 ολόκληρο το νήμα. 768 00:38:08,960 --> 00:38:10,720 OK δροσερό. 769 00:38:10,720 --> 00:38:17,850 >> Έτσι, ο Ααρών μια ερώτηση νωρίτερα ότι ήταν, αλλά τι γίνεται αν εμείς κάνουμε κάτι - 770 00:38:17,850 --> 00:38:18,735 Ναι; 771 00:38:18,735 --> 00:38:19,051 >> ΚΟΙΝΟ: Περιμένετε. 772 00:38:19,051 --> 00:38:21,585 Πώς είναι ότι διαφέρει από ρυθμιστικό printf, όμως; 773 00:38:21,585 --> 00:38:23,010 Δεν το κάνει αυτόματα αυτό; 774 00:38:23,010 --> 00:38:25,390 Γιατί πρέπει να ανησυχείτε γι 'αυτό; 775 00:38:25,390 --> 00:38:26,555 >> KEVIN SCHMID: Ω, θα μπορούσε να σας να πω ότι για μια ακόμη φορά; 776 00:38:26,555 --> 00:38:29,510 >> ΚΟΙΝΟ: Δεν ήθελα ρυθμιστικό printf κάνουν ακριβώς το ίδιο πράγμα; 777 00:38:29,510 --> 00:38:31,280 >> KEVIN SCHMID: Το ρυθμιστικό printf; 778 00:38:31,280 --> 00:38:32,753 >> ΚΟΙΝΟ: Ναι. 779 00:38:32,753 --> 00:38:33,244 OK. 780 00:38:33,244 --> 00:38:40,609 Δεν ήταν σε ένα από τα κουίζ ήταν μιλάμε για το πώς, αν το δικαίωμα printf 781 00:38:40,609 --> 00:38:42,899 κάτι και στη συνέχεια να έχουν μια παύση δεύτερο, και στη συνέχεια να το έχετε βρόχο δέκα 782 00:38:42,899 --> 00:38:46,530 φορές, θα περιμένετε δέκα δευτερόλεπτα και printf στη συνέχεια όλα μαζί; 783 00:38:46,530 --> 00:38:47,460 >> KEVIN SCHMID: Ω, εντάξει. 784 00:38:47,460 --> 00:38:49,170 >> ΚΟΙΝΟ: Είναι κάνει το ίδιο πράγμα τότε σε αυτή την περίπτωση; 785 00:38:49,170 --> 00:38:52,630 >> KEVIN SCHMID: Άρα το ερώτημα ήταν βασικά σε μία από τις πρώην κουίζ 786 00:38:52,630 --> 00:38:57,200 ή κάτι τέτοιο, υπήρχε μια ερώτηση που βασικά αν πεις εκτύπωσης f 10 787 00:38:57,200 --> 00:39:01,490 τα πράγματα σε έναν χρόνο και στη συνέχεια κοιμήθηκε σαν σε η διαδικασία της εκτύπωσης τα έξω, 788 00:39:01,490 --> 00:39:04,850 στο τέλος για κάποιο λόγο, θα ήταν απλά χωματερή εκείνες όλοι έξω στην οθόνη. 789 00:39:04,850 --> 00:39:06,740 Έτσι, υπάρχει το είδος των δύο διαφορετικών έννοιες εδώ. 790 00:39:06,740 --> 00:39:10,400 >> Έτσι υποθέτω ότι ένα πράγμα είναι ότι, σε αυτό το περίπτωση, έχουμε να κάνουμε με δύο διαφορετικά 791 00:39:10,400 --> 00:39:13,510 το είδος των ανθρώπων που ζητούν το διακομιστή δραστηριότητες ταυτόχρονα. 792 00:39:13,510 --> 00:39:17,455 Και ο λόγος που το είδος της printf περιμένει, όπως και ότι χωματερές όλα έξω 793 00:39:17,455 --> 00:39:21,760 ταυτόχρονα είναι πιο σχετικές με πώς το είδος της printf - 794 00:39:21,760 --> 00:39:25,100 έτσι ώστε ο τρόπος printf είναι στην πραγματικότητα εφαρμοστεί είναι ότι έχει ουσιαστικά να 795 00:39:25,100 --> 00:39:28,850 μιλήστε με το λειτουργικό σύστημα για να γράψει ότι τα πράγματα στην κονσόλα. 796 00:39:28,850 --> 00:39:33,460 Γι 'αυτό δεν θέλω να κάνω όλα αυτά πράγματα αμέσως όταν λέτε printf 797 00:39:33,460 --> 00:39:36,260 κάποια σειρά, επειδή αυτό θα μπορούσε να να πάρει ακριβό αν πρέπει να 798 00:39:36,260 --> 00:39:37,340 το κάνουμε αυτό κάθε φορά. 799 00:39:37,340 --> 00:39:41,530 >> Έτσι, αν κάνετε printf hey, το πρόγραμμά σας δεν μπορεί στην πραγματικότητα να εκτυπώσετε ότι 800 00:39:41,530 --> 00:39:43,040 αμέσως στην κονσόλα. 801 00:39:43,040 --> 00:39:46,080 Θα μπορούσαμε να πούμε, εντάξει, εγώ το έγραψα. 802 00:39:46,080 --> 00:39:49,570 Και στη συνέχεια το είδος της σας περιμένουν για να δώσει λίγο πιο πριν στην πραγματικότητα 803 00:39:49,570 --> 00:39:51,380 γραπτώς έξω στην κονσόλα. 804 00:39:51,380 --> 00:39:54,040 >> Έτσι, ο λόγος ότι αυτή ήταν η περίπτωση - 805 00:39:54,040 --> 00:39:56,450 και αυτό είναι το είδος των μη συνδεδεμένων για τον ύπνο - 806 00:39:56,450 --> 00:40:00,060 είναι ότι ο ύπνος ήταν το είδος ακριβώς εγχέεται εκεί για να καταδειχθεί η 807 00:40:00,060 --> 00:40:02,480 γεγονός ότι δεν γράφει είναι συγχρονισμένα. 808 00:40:02,480 --> 00:40:06,210 Αλλά ο λόγος για αυτό είναι μόνο απόδοσης, έτσι ώστε να μην χρειάζεται να 809 00:40:06,210 --> 00:40:08,920 κάνει πολλές επαφές με το λειτουργικό σύστημα. 810 00:40:08,920 --> 00:40:12,300 >> Αλλά εδώ, αυτό που προσπαθούμε να κάνουμε με αυτό το πράγμα ύπνος είναι απλώς show 811 00:40:12,300 --> 00:40:17,730 ότι όταν έχουμε δύο ανθρώπους που επισκέπτονται αυτή την ιστοσελίδα, δεν πρόκειται να θέσει 812 00:40:17,730 --> 00:40:22,310 τους σε μια γραμμή όπου πρόκειται να πω Έχω να σας βοηθήσει, και στη συνέχεια, όταν είμαι 813 00:40:22,310 --> 00:40:25,350 τελειωμενη βοηθώντας σας μετά από αυτές τις πέντε δευτερόλεπτα και, στη συνέχεια, Πάω να 814 00:40:25,350 --> 00:40:26,750 προχωρήσουμε στο επόμενο πρόσωπο. 815 00:40:26,750 --> 00:40:29,515 Έτσι, το αίτημα του πρώτου προσώπου δεν δένουν ότι βρόχο εκδήλωση 816 00:40:29,515 --> 00:40:31,610 αν αυτό έχει νόημα. 817 00:40:31,610 --> 00:40:34,980 >> Αλλά εδώ είναι πραγματικά ένα παράδειγμα κάτι που θα συνδέσει 818 00:40:34,980 --> 00:40:36,090 μέχρι το βρόχο εκδήλωση. 819 00:40:36,090 --> 00:40:39,130 Έτσι, εδώ είναι μια φρικτή λειτουργία για να υπολογίσουμε το νιοστό Fibonacci. 820 00:40:39,130 --> 00:40:43,510 Είναι κυριολεκτικά το χειρότερο τρόπο μπορείτε υπολογίσουμε το νιοστό αριθμό Fibonacci. 821 00:40:43,510 --> 00:40:48,480 Και αυτό είναι πραγματικά μόνο για να αναγνωρίσουμε όπου αυτό προήλθε από, 822 00:40:48,480 --> 00:40:49,330 υπάρχει στην πραγματικότητα - 823 00:40:49,330 --> 00:40:53,230 Θέλω να πω, μπορείτε να προσπαθήσετε να πάτε να βρείτε - αλλά υπάρχει σαν μια πολύ μακρά blog 824 00:40:53,230 --> 00:40:54,130 υστέρων ότι κάποιος έγραψε. 825 00:40:54,130 --> 00:40:55,660 Είναι σαν ένα από εκείνα τα πράγματα Reddit. 826 00:40:55,660 --> 00:40:59,650 Αλλά κάποιος επέκρινε Node.js, και χρησιμοποίησαν αυτό ως παράδειγμα. 827 00:40:59,650 --> 00:41:03,700 Γι 'αυτό το είδος ήθελε να σας δείξω μόνο δύο διαφορετικές οπτικές γωνίες για να πάρει ακριβώς 828 00:41:03,700 --> 00:41:07,320 μια γενική κατανόηση των εννοιών πίσω από αυτά τα δύο πράγματα. 829 00:41:07,320 --> 00:41:13,050 >> Αλλά αυτό έχει επιλεγεί ως απλά μια φρικτή, Σκληρό αναποτελεσματική υπολογιστικά 830 00:41:13,050 --> 00:41:15,940 εντατικό τρόπο για να υπολογίσουμε το νιοστό αριθμό Fibonacci. 831 00:41:15,940 --> 00:41:21,180 Έτσι ακριβώς όπως μια πλευρά σημείωση, γιατί είναι το φρικτό, όπως σε ένα τρόπο; 832 00:41:21,180 --> 00:41:23,210 Ναι; 833 00:41:23,210 --> 00:41:25,130 >> ΚΟΙΝΟ: Πείτε ξεκινήσετε έξω με 1000. 834 00:41:25,130 --> 00:41:27,050 1.000 χωρίζει στα 999 και 998. 835 00:41:27,050 --> 00:41:28,970 Κάθε ένα από αυτό χωρίζεται σε δύο πράγματα. 836 00:41:28,970 --> 00:41:30,890 Κάθε ένα από αυτό χωρίζεται σε δύο πράγματα. 837 00:41:30,890 --> 00:41:31,355 >> KEVIN SCHMID: Σωστά. 838 00:41:31,355 --> 00:41:32,400 >> ΚΟΙΝΟ: Όλος ο τρόπος κάτω. 839 00:41:32,400 --> 00:41:32,840 >> KEVIN SCHMID: Ακριβώς. 840 00:41:32,840 --> 00:41:37,330 Έτσι απλά για να επαναλάβω για την κάμερα, αν καλέστε ψεματάκι για 1.000 ή σαν κάτι 841 00:41:37,330 --> 00:41:41,810 έτσι, δεν είναι προφανώς λιγότερο από ό, τι ή ίση με ένα, έτσι Πάω να 842 00:41:41,810 --> 00:41:46,040 πηγαίνω σε αυτήν την περίπτωση οι άλλοι, και στη συνέχεια θα πάω να καλέσετε ψεματάκι 999 συν 998 ψεματάκι. 843 00:41:46,040 --> 00:41:50,290 Και στη συνέχεια, λίγο πολύ όλα αυτά έργο που ψεματάκι 999 δεν είναι 844 00:41:50,290 --> 00:41:52,950 το είδος της σε αυτό το επίπεδο. 845 00:41:52,950 --> 00:41:55,620 Αν πάτε προς τα κάτω, είναι ακόμη πιο περιττή από αυτό, αλλά αν απλά 846 00:41:55,620 --> 00:42:01,390 σκεφτείτε υπολογιστών fib 998 παίρνει μας πολύ κοντά σε ψεματάκι 999. 847 00:42:01,390 --> 00:42:05,860 Γι 'αυτό πρέπει πραγματικά να είναι λίγο πιο έξυπνος για το πώς το είδος της επαναχρησιμοποίησης 848 00:42:05,860 --> 00:42:07,580 αυτά, αλλά δεν είμαστε επαναχρησιμοποίηση αυτά τα πράγματα καθόλου. 849 00:42:07,580 --> 00:42:11,860 Έτσι μπορείτε να φανταστείτε αυτό το γιγάντιο, γιγαντιαίο δέντρο που είναι ακριβώς φρικτό. 850 00:42:11,860 --> 00:42:12,940 >> Αλλά έτσι κι αλλιώς, OK. 851 00:42:12,940 --> 00:42:14,040 Έτσι, αυτό ήταν fib. 852 00:42:14,040 --> 00:42:15,530 Χρειάζεται μόνο μια στιγμή για να τρέξει. 853 00:42:15,530 --> 00:42:16,510 Ναι; 854 00:42:16,510 --> 00:42:17,760 >> ΚΟΙΝΟ: [δεν ακούγεται]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> KEVIN SCHMID: Ω, θα μπορούσε να σας επαναλάβω την ερώτηση; 857 00:42:22,481 --> 00:42:23,731 >> ΚΟΙΝΟ: [δεν ακούγεται]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> KEVIN SCHMID: Oh so αυτό είναι μόνο κώδικας ότι πρόκειται να είναι το είδος του σχετικά με την 860 00:42:33,990 --> 00:42:34,850 πλευρά του server. 861 00:42:34,850 --> 00:42:38,100 Έτσι, αυτό δεν πρόκειται να βρεθεί στο πρόγραμμα περιήγησης ή οτιδήποτε άλλο. 862 00:42:38,100 --> 00:42:42,160 Είναι βασικά αυτό που έχουμε είναι ότι όταν ο χρήστης εδώ λίγο πολύ μάρκες 863 00:42:42,160 --> 00:42:45,300 αίτησή τους και πάλι, όταν το είδος της υποβάλουν αίτηση, θα πάμε για να καλέσετε 864 00:42:45,300 --> 00:42:47,040 αυτή η λειτουργία στην πλευρά του διακομιστή. 865 00:42:47,040 --> 00:42:50,480 Και τότε θα πάρει το αποτέλεσμα πίσω από την κλήση αυτής της λειτουργίας. 866 00:42:50,480 --> 00:42:52,460 Και τότε θα εκτυπώσετε μόνο στο χρήστη. 867 00:42:52,460 --> 00:42:54,580 Έτσι, ο χρήστης δεν πραγματικά να ασχοληθεί με αυτή τη λειτουργία πάρα πολύ. 868 00:42:54,580 --> 00:42:57,270 >> Ήταν ότι η ερώτηση; 869 00:42:57,270 --> 00:42:58,470 Μήπως αυτό έχει νόημα; 870 00:42:58,470 --> 00:42:58,810 OK. 871 00:42:58,810 --> 00:43:00,930 Cool. 872 00:43:00,930 --> 00:43:04,240 >> Έτσι και πάλι, κάνουμε όλο αυτό res.writeHead πράγμα όπου θα εκτυπώσετε 873 00:43:04,240 --> 00:43:05,150 η επικεφαλίδα. 874 00:43:05,150 --> 00:43:09,730 Και τότε θα τελειώσει την απάντηση κάνοντας ο μαγικός αριθμός είναι fib 45. 875 00:43:09,730 --> 00:43:12,100 Οπότε ας τρέχουν σε αυτόν το διακομιστή. 876 00:43:12,100 --> 00:43:15,190 Έτσι, Πάω να κάνω μια fib.js. κόμβου 877 00:43:15,190 --> 00:43:17,340 Έτσι τώρα διακομιστής fib μου τρέχει. 878 00:43:17,340 --> 00:43:21,790 >> Και τότε εδώ, Πάω να κάνει ένα από αυτά. 879 00:43:21,790 --> 00:43:22,200 Εντάξει; 880 00:43:22,200 --> 00:43:24,960 Έτσι, είμαι απλώς πρόκειται να πω, Curl. 881 00:43:24,960 --> 00:43:32,226 Έτσι πρόκειται να πάρει λίγο χρόνο, αλλά ελπίζουμε ότι σύντομα θα τελειώσει και 882 00:43:32,226 --> 00:43:35,660 θα εκτυπώσει ότι η 45η Fibonacci αριθμό. 883 00:43:35,660 --> 00:43:36,910 >> ΚΟΙΝΟ: [δεν ακούγεται]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> KEVIN SCHMID: Θα πρέπει να γίνει πολύ σύντομα. 886 00:43:42,050 --> 00:43:43,780 Γι 'αυτό πρέπει να χρειαστούν πέντε έως έξι δευτερόλεπτα. 887 00:43:43,780 --> 00:43:48,570 Δεν ξέρω πως ακριβώς V8 είναι super γρήγορα, αλλά σε κάθε περίπτωση, αυτό είναι ένα 888 00:43:48,570 --> 00:43:52,700 πολύ σύντομο παράδειγμα και εσκεμμένα άκομψο από μη τετριμμένη 889 00:43:52,700 --> 00:43:54,200 υπολογισμού. 890 00:43:54,200 --> 00:43:56,700 Έτσι, μετά από λίγο, δεν πάρει αυτό. 891 00:43:56,700 --> 00:44:02,130 >> Αλλά τώρα, τι και αν κάνω το ίδιο είδος πείραμα όπως πριν, όπου κάνω 892 00:44:02,130 --> 00:44:04,010 δύο αιτήσεις κατά την ίδια στιγμή; 893 00:44:04,010 --> 00:44:06,990 Εδώ, λοιπόν, πάω σε μια μπούκλα σε ότι η διεύθυνση, και θα πάω 894 00:44:06,990 --> 00:44:08,260 να κάνουμε μια άλλη Curl. 895 00:44:08,260 --> 00:44:12,070 Και να θυμάστε, όταν το κάναμε αυτό για το ύπνο του διακομιστή, όταν είχε ουσιαστικά 896 00:44:12,070 --> 00:44:15,320 μετά από πέντε δευτερόλεπτα, που λίγο πολύ δύο ήρθαν πίσω δεξιά 897 00:44:15,320 --> 00:44:16,380 περίπου την ίδια ώρα. 898 00:44:16,380 --> 00:44:18,650 Έτσι, δεν ήταν ιδιαίτερα δεμένος. 899 00:44:18,650 --> 00:44:20,290 >> Αλλά ας το προσπαθήσουμε τώρα. 900 00:44:20,290 --> 00:44:22,370 Εντάξει, έτσι έχουμε δύο διαδικασίες μας. 901 00:44:22,370 --> 00:44:24,210 Να θυμάστε ότι αυτά είναι τα αναγνωριστικά διαδικασίας. 902 00:44:24,210 --> 00:44:25,900 Αυτό πρόκειται να είναι λίγο αμήχανη, ενώ εμείς σταματήσει. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 Οπότε ας μείνουμε εδώ και να περιμένουμε. 905 00:44:35,360 --> 00:44:37,090 >> Έτσι, ένας από αυτούς θα πρέπει να έρθει πίσω μετά, όπως - 906 00:44:37,090 --> 00:44:39,190 ΕΝΤΑΞΕΙ, έτσι ήρθε πίσω. 907 00:44:39,190 --> 00:44:43,570 Αλλά τότε γιατί να μην έκανε το δεύτερο ένα επανέλθω λίγο ακόμα; 908 00:44:43,570 --> 00:44:44,389 Ναι; 909 00:44:44,389 --> 00:44:49,280 >> ΚΟΙΝΟ: Ο διακομιστής δεν μπορεί να κάνει τίποτα ενώ είναι υπολογίζοντας ότι μεγάλος αριθμός. 910 00:44:49,280 --> 00:44:51,620 >> KEVIN SCHMID: Σωστά. 911 00:44:51,620 --> 00:44:55,395 Έτσι, η απάντηση ήταν ακριβώς ότι ο διακομιστής Πραγματικά δεν μπορούμε να κάνουμε τίποτα, ενώ 912 00:44:55,395 --> 00:44:57,460 είναι υπολογίζοντας τον αριθμό Fibonacci. 913 00:44:57,460 --> 00:44:59,360 Έτσι τώρα πήρα μόνο δύο πράγματα μου πίσω. 914 00:44:59,360 --> 00:45:03,210 Αλλά υποθέτω ότι απλά πρέπει να σκεφτεί για τον κώδικα λίγο περισσότερο, πώς λειτουργεί 915 00:45:03,210 --> 00:45:05,030 και τα πάντα. 916 00:45:05,030 --> 00:45:11,750 >> Έτσι, η λειτουργία αυτή εδώ είναι ο κώδικας που Έχω πει αυτό το server να τρέχει όταν 917 00:45:11,750 --> 00:45:14,100 λαμβάνει μια νέα εισερχόμενη αίτηση. 918 00:45:14,100 --> 00:45:17,940 Γι 'αυτό ακριβώς πρόκειται να τρέχει μέσα από αυτό ολόκληρο τον κώδικα, και στη συνέχεια πρόκειται να πάει 919 00:45:17,940 --> 00:45:21,120 πίσω στο βρόχο εκδήλωση και στη συνέχεια να συνεχίσει έλεγχο για νέα συμβάντα. 920 00:45:21,120 --> 00:45:23,670 Έτσι, βασικά αυτό που έχουμε να συμβεί είναι ο server είναι 921 00:45:23,670 --> 00:45:25,080 ακούγοντας για νέα πράγματα. 922 00:45:25,080 --> 00:45:28,070 Το πρώτο πρόσωπο που ζητά γι 'αυτό 45 είναι. 923 00:45:28,070 --> 00:45:30,490 Εμείς τρέχουμε τον κώδικα για να το υπολογίσετε. 924 00:45:30,490 --> 00:45:33,420 Ο κωδικός αυτός διαρκεί περίπου πέντε έως έξι δευτερόλεπτα για να τρέξει. 925 00:45:33,420 --> 00:45:36,990 Στη συνέχεια, πάμε πίσω στο βρόχο εκδήλωση και να ελέγξετε για νέες αιτήσεις. 926 00:45:36,990 --> 00:45:42,700 >> Έτσι, αυτό είναι ένα παράδειγμα του πώς, εάν έχουν τα πράγματα που είναι τα λεγόμενα υπολογιστική 927 00:45:42,700 --> 00:45:48,140 δεσμεύεται, ή να χρησιμοποιήσετε μια πολύ υπολογιστική, Δεν εξουσία, αλλά όπως είναι 928 00:45:48,140 --> 00:45:50,260 υπολογιστικά εντατική - 929 00:45:50,260 --> 00:45:54,080 Υποθέτω ότι ένα πράγμα να πει γι 'αυτό είναι ότι αυτή η λειτουργία είναι να κάνει εντελώς, 930 00:45:54,080 --> 00:45:56,310 ως επί το πλείστον, αρκετά χρήσιμο σωστή δουλειά. 931 00:45:56,310 --> 00:45:59,970 Το σύνολο του χρόνου ότι επανάκλησης λειτουργία έτρεχε, ήταν αρκετά 932 00:45:59,970 --> 00:46:03,670 πολύ ξοδεύουν τον περισσότερο χρόνο του μόνο computing αριθμός που πολλοστή Fibonacci. 933 00:46:03,670 --> 00:46:05,930 >> Αλλά είχαμε μόνο ένα νήμα να αντιμετωπίσουμε. 934 00:46:05,930 --> 00:46:10,270 Στο μοντέλο Apache, όταν δύο άτομα υπέβαλε το αίτημα να πάρει ψεματάκι 45, θα 935 00:46:10,270 --> 00:46:11,610 θα είχε δύο διαφορετικά θέματα. 936 00:46:11,610 --> 00:46:15,060 Και τότε η δουλειά του λειτουργικού συστήματος θα ήταν, ή το επίπεδο των χρηστών 937 00:46:15,060 --> 00:46:18,660 κώδικα που διαχειρίζεται τα θέματα, θα έχουμε ήταν να χωρίσετε ότι μέχρι σχετικά με την 938 00:46:18,660 --> 00:46:23,060 CPU, ή ακόμα και αν είχαν πολλαπλές CPUs, διανείμετε ομοιόμορφα σε όλη την CPUs 939 00:46:23,060 --> 00:46:26,130 έτσι ώστε και οι δύο φινίρισμα περίπου την ίδια στιγμή. 940 00:46:26,130 --> 00:46:31,120 >> Έτσι απλά για να σας δείξει πώς μπορούμε να λύσουμε από - και αυτό δεν είναι ένα σύνολο τέλειο 941 00:46:31,120 --> 00:46:34,280 λύση, αλλά το είδος του πώς μπορούμε να κάνουν μια επανέλθω εδώ και να κάνουμε 942 00:46:34,280 --> 00:46:35,880 λίγο καλύτερα. 943 00:46:35,880 --> 00:46:41,540 Έτσι, αυτό που έχουμε εδώ είναι ένα πρόγραμμα που ονομάζεται Ψεματάκι C. Και αυτό χρησιμοποιεί βασικά 944 00:46:41,540 --> 00:46:45,690 άλλο ένα από τα modules κόμβου ονομάζεται Η διαδικασία Παιδί Module. 945 00:46:45,690 --> 00:46:49,210 Έτσι έχω συμπεριληφθεί ότι στην κορυφή του είδους σαν θα ήθελα να κάνω μια λίβρα περιλαμβάνουν 946 00:46:49,210 --> 00:46:51,230 process.h παιδί ή κάτι τέτοιο. 947 00:46:51,230 --> 00:46:56,210 Τώρα έχω πρόσβαση σε αυτή τη μεταβλητή CP η οποία έχει όλες τις λειτουργίες μου. 948 00:46:56,210 --> 00:47:01,810 >> Και τώρα τι κάνω σε αυτή την απάντηση handler είναι Τρέχω αυτό το πρόγραμμα 949 00:47:01,810 --> 00:47:04,100 dot κάθετος fib 45. 950 00:47:04,100 --> 00:47:06,820 Έτσι, αυτό που έχω κάνει - και είμαι απλώς πρόκειται να βγει από αυτό το πρόγραμμα για την 951 00:47:06,820 --> 00:47:07,620 λίγο - 952 00:47:07,620 --> 00:47:11,060 Είναι Έχω γράψει ένα πρόγραμμα C που βασικά υπολογίζει το 953 00:47:11,060 --> 00:47:12,630 νιοστό αριθμό Fibonacci. 954 00:47:12,630 --> 00:47:15,960 Έτσι, εδώ είναι μόνο ένα πρόγραμμα που έχω γράψει σε C που υπολογίζει αυτό. 955 00:47:15,960 --> 00:47:19,040 Μπορώ να το υπολογίσουν, και μπορώ να τρέξω είναι στη γραμμή εντολών. 956 00:47:19,040 --> 00:47:22,150 Και πρόκειται να υπολογίσει το Αριθμός 45η Fibonacci. 957 00:47:22,150 --> 00:47:24,510 >> Έτσι παρατηρήσετε ότι παίρνει μόνο λίγο πολύ όσο χρονικό διάστημα. 958 00:47:24,510 --> 00:47:28,240 Εγώ κατά πάσα πιθανότητα θα μπορούσε να χρησιμοποιηθεί παύλα 03 έως βελτιστοποίηση ή κάτι τέτοιο, 959 00:47:28,240 --> 00:47:31,050 αλλά εγώ απλά έκανα σαν κανονικό ρυθμίσεις compiler. 960 00:47:31,050 --> 00:47:33,260 Και εκτυπώνει. 961 00:47:33,260 --> 00:47:36,830 >> Αλλά τώρα, τι είμαι το είδος του κάνει; 962 00:47:36,830 --> 00:47:39,800 Αχ συγνώμη, λάθος αρχείο. 963 00:47:39,800 --> 00:47:42,800 Γι 'αυτό και κάνουν τα ίδια πράγματα με η επικεφαλίδα πριν. 964 00:47:42,800 --> 00:47:45,780 Στη συνέχεια, κάνω αυτό cp.exec. 965 00:47:45,780 --> 00:47:49,460 Έτσι αυτό πρόκειται να κάνουμε είναι να είναι πρόκειται να τρέξει αυτό το πρόγραμμα. 966 00:47:49,460 --> 00:47:51,960 Αλλά ο τρόπος με τον οποίο δουλεύει αυτό είναι δεν πρόκειται να περιμένει για 967 00:47:51,960 --> 00:47:53,400 αυτό το πρόγραμμα για να ολοκληρωθεί. 968 00:47:53,400 --> 00:47:56,000 Λέει απλά βασικά εκτέλεση του προγράμματος. 969 00:47:56,000 --> 00:47:58,700 Έτσι, πληκτρολογήστε βασικά αυτό σε το γραμμή εντολών είδος. 970 00:47:58,700 --> 00:48:02,350 >> Και στη συνέχεια, όταν τελειώσετε με αυτό, εκτελέστε αυτή τη λειτουργία. 971 00:48:02,350 --> 00:48:04,800 Έτσι τώρα έχουμε το είδος του να πάρει αυτό ολόκληρη αποκατασταθεί πράγμα 972 00:48:04,800 --> 00:48:06,750 όπως δεν είμαστε σε αναμονή. 973 00:48:06,750 --> 00:48:08,530 Μήπως αυτό το είδος της νόημα; 974 00:48:08,530 --> 00:48:08,990 Ναι; 975 00:48:08,990 --> 00:48:11,060 >> ΚΟΙΝΟ: [δεν ακούγεται]; 976 00:48:11,060 --> 00:48:13,610 >> KEVIN SCHMID: Έτσι, αυτό θα είναι πράγματι ανοίξει μια νέα διαδικασία για να το κάνουμε. 977 00:48:13,610 --> 00:48:19,310 Έτσι αυτό είναι στην πραγματικότητα, με κάποιους τρόπους, το κακό, δεν είναι σούπερ κακό, αλλά είναι 978 00:48:19,310 --> 00:48:22,990 σημαντικό να πούμε ότι αυτό είναι το είδος της πηγαίνει πίσω, από τη μια πλευρά, η Apache 979 00:48:22,990 --> 00:48:26,450 μοντέλο όπου κάνουμε τα θέματα και τις διαδικασίες για κάθε αίτηση ή 980 00:48:26,450 --> 00:48:29,280 διεργασίες για κάθε αίτηση. 981 00:48:29,280 --> 00:48:32,090 Έτσι, αυτό είναι το είδος της ανάλογης σε ό, τι κάνει Apache. 982 00:48:32,090 --> 00:48:35,110 Σε ορισμένες περιπτώσεις, θα χρησιμοποιήσει μόνο ένα νέο νήμα, το οποίο είναι λίγο περισσότερο φως 983 00:48:35,110 --> 00:48:39,040 βάρος από μια διαδικασία, αλλά θα μπορούσε Apache καταλήγουν διακλάδωση μια νέα διαδικασία 984 00:48:39,040 --> 00:48:43,370 το οποίο είναι το είδος του τι κάνουμε εδώ εμμέσως, κάνοντας dot κάθετο fib 45. 985 00:48:43,370 --> 00:48:48,690 >> Και στη συνέχεια, στην περίπτωση αυτή, έχουμε το είδος των επιβαρύνονται οι ίδιες έξοδα των διαδικασιών. 986 00:48:48,690 --> 00:48:50,710 Έτσι, αυτό είναι μόνο ένα πράγμα που μπορείτε να κάνετε. 987 00:48:50,710 --> 00:48:52,600 Αλλά ακριβώς για να δείξει αυτό το είδος της λειτουργίας. 988 00:48:52,600 --> 00:48:57,120 Και αυτή η συζήτηση είναι ακριβώς πραγματικά στοχεύουν στην παρουσιάζουν αυτά τα είδη των προγραμμάτων ως 989 00:48:57,120 --> 00:49:00,710 τρόπος για να δείξει διαφορετικές προοπτικές για πώς να σχεδιάσουν servers όπως αυτό. 990 00:49:00,710 --> 00:49:08,300 Έτσι, αυτό είναι το τρέξιμο, και στη συνέχεια, τώρα αν κάνω Αυτό πάλι, πήρα δύο αναγνωριστικά διαδικασία. 991 00:49:08,300 --> 00:49:10,320 >> Ας μιλήσουμε για πράγματα που πρέπει να επισημάνουμε. 992 00:49:10,320 --> 00:49:11,980 Έτσι, παρατηρούμε ότι είναι σταδιακά. 993 00:49:11,980 --> 00:49:12,700 Αυτό είναι δροσερό. 994 00:49:12,700 --> 00:49:15,140 Επειδή ήταν 27.122 πριν. 995 00:49:15,140 --> 00:49:18,580 Αλλά προσέξτε τώρα, επέστρεψαν περίπου στο ίδιο χρονικό διάστημα. 996 00:49:18,580 --> 00:49:23,960 >> Και τώρα, μια καλή ερώτηση για να ρωτήσω για γιατί ήταν ότι η υπόθεση είναι, του οποίου η δουλειά 997 00:49:23,960 --> 00:49:27,590 ήταν τώρα να ταξινομήσετε του κάνει αυτά τα πράγματα είδος του παιχνιδιού με κάθε θεμιτό 998 00:49:27,590 --> 00:49:31,350 άλλες, αυτές οι δύο περιπτώσεις dot κάθετος fib 45 που έτρεξα 999 00:49:31,350 --> 00:49:32,880 ή ότι έτρεξε κόμβου; 1000 00:49:32,880 --> 00:49:36,940 Ποιος είδους καθιστά εύλογη ότι και οι δύο να πάρει το είδος της με βάση το χρόνο εκτέλεσης; 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> ΚΟΙΝΟ: [δεν ακούγεται]. 1003 00:49:44,220 --> 00:49:44,620 >> KEVIN SCHMID: Ναι. 1004 00:49:44,620 --> 00:49:49,740 Έτσι, βασικά, όταν κάνω dot κάθετος fib 45 ή κάτι τέτοιο, τώρα είναι 1005 00:49:49,740 --> 00:49:53,750 είδος του μέχρι το λειτουργικό σύστημα για χειριστεί το χρόνο εκτέλεσης των προγραμμάτων αυτών. 1006 00:49:53,750 --> 00:49:56,920 Και τώρα μπορεί να τους προγραμματίσετε σε διαφορετικούς επεξεργαστές ή 1007 00:49:56,920 --> 00:49:58,330 μπορεί να τους προγραμματίσετε. 1008 00:49:58,330 --> 00:50:01,870 Μπορεί να κόψει μέχρι και την ώρα που κάποιος CPU παίρνει ή που παίρνουν 1009 00:50:01,870 --> 00:50:03,330 να τρέχει σε έναν επεξεργαστή. 1010 00:50:03,330 --> 00:50:05,620 Έτσι, αυτή είναι η ιδέα πίσω από αυτό. 1011 00:50:05,620 --> 00:50:07,220 Μήπως αυτό έχει νόημα για όλους; 1012 00:50:07,220 --> 00:50:10,950 Έτσι τώρα κόμβου δεν είναι πραγματικά παίζει μέρος ο καταμερισμός των καθηκόντων αυτών. 1013 00:50:10,950 --> 00:50:12,200 OK. 1014 00:50:12,200 --> 00:50:14,050 1015 00:50:14,050 --> 00:50:17,840 >> Έτσι, αυτό είναι σχεδόν αυτό για τα παραδείγματα. 1016 00:50:17,840 --> 00:50:23,370 Ήθελα απλώς να δείξει ένα πράγμα επειδή πολλά από αυτά μέχρι τώρα ήταν 1017 00:50:23,370 --> 00:50:27,350 όχι εντελώς σούπερ πρακτικό σε ορισμένες περιπτώσεις. 1018 00:50:27,350 --> 00:50:30,970 Μπορώ να φανταστώ γυρνάς σπίτι μετά από αυτό να μιλήσει και κάτι σαν και λέγοντας, 1019 00:50:30,970 --> 00:50:35,710 καλά εγώ το είδος πήρε από αυτά τα λόγια που Μπορώ να κάνω ένα διακομιστή Fibonacci για 1020 00:50:35,710 --> 00:50:37,360 τελικό σχέδιο μου. 1021 00:50:37,360 --> 00:50:40,770 Έτσι, εδώ είναι ακριβώς το είδος του ένα ακόμη παράδειγμα ώστε να ελπίζουμε ότι θα είναι - 1022 00:50:40,770 --> 00:50:44,620 ίσως όχι, αλλά ίσως - λίγο περισσότερο το είδος των σχετικών με τελικών σχεδίων και 1023 00:50:44,620 --> 00:50:46,440 σκέφτεται το μέλλον για τέτοια πράγματα. 1024 00:50:46,440 --> 00:50:48,870 >> Έτσι, αυτό είναι chat.js. 1025 00:50:48,870 --> 00:50:52,290 Έτσι, αυτό είναι το είδος του αρέσει κάποιο δείγμα του διακομιστή κωδικό πλευρά που θα μπορούσατε να χρησιμοποιήσετε για να 1026 00:50:52,290 --> 00:50:55,700 δημιουργήσει ένα μικρό διακομιστή συνομιλίας, όπως μπορεί να έχετε δει για το 1027 00:50:55,700 --> 00:50:56,630 Facebook Chat ή οτιδήποτε άλλο. 1028 00:50:56,630 --> 00:50:59,990 Γι 'αυτό δεν λέω ότι αυτό είναι όπως το Facebook Συνομίλησε, αλλά αυτό είναι το είδος της 1029 00:50:59,990 --> 00:51:06,230 σαν ένα καλό - ίσως δεν είναι καλό, αλλά ίσως αφετηρία για ένα chat - καλό 1030 00:51:06,230 --> 00:51:08,560 server για την ιστοσελίδα σας για ένα τελικό σχέδιο. 1031 00:51:08,560 --> 00:51:11,040 Ας ρίξουμε μια ματιά σε αυτό που κάνει. 1032 00:51:11,040 --> 00:51:15,500 >> Έτσι παίρνουμε αυτό το ιδιαίτερο πράγμα στην κορυφή, αυτό var SIO 1033 00:51:15,500 --> 00:51:17,050 ισούται απαιτούν Socket.IO. 1034 00:51:17,050 --> 00:51:20,280 Έτσι, αυτό είναι ένα άλλο πράγμα που δεν το κάνει στην πραγματικότητα έρχονται συσσωρευμένος με 1035 00:51:20,280 --> 00:51:22,300 Κόμβου, αλλά μπορείτε να το εγκαταστήσετε. 1036 00:51:22,300 --> 00:51:23,480 Είναι μια μονάδα κόμβου. 1037 00:51:23,480 --> 00:51:25,670 Έτσι είναι ακριβώς όπως μερικοί επέκταση κόμβου. 1038 00:51:25,670 --> 00:51:29,220 >> SocketIO είναι πραγματικά πολύ είδος δροσερό. 1039 00:51:29,220 --> 00:51:32,550 Είναι μια αφαίρεση που βασικά αυτό που κάνει είναι να είναι αυτό που επιτρέπει την 1040 00:51:32,550 --> 00:51:35,770 έχουν αυτό το ρεύμα της επικοινωνίας μεταξύ ενός web 1041 00:51:35,770 --> 00:51:39,430 browser και ένα web server. 1042 00:51:39,430 --> 00:51:45,250 Έτσι, ως επί το πλείστον μέχρι σήμερα, είχαμε αυτά τα πολύ γρήγορη ένα δευτερόλεπτο ή δύο 1043 00:51:45,250 --> 00:51:48,790 δεύτερη επικοινωνία μεταξύ ενός web browser και το web server. 1044 00:51:48,790 --> 00:51:53,310 Έτσι είναι βασικά πηγαίνετε στο google.com, get τα πράγματα, να το στείλετε πίσω, και στη συνέχεια 1045 00:51:53,310 --> 00:51:53,770 τελειώσαμε. 1046 00:51:53,770 --> 00:51:56,560 Είμαστε δεν μιλάμε ξανά έως ότου η πληκτρολογεί ο χρήστης σε κάτι άλλο. 1047 00:51:56,560 --> 00:52:01,090 >> Αλλά τι Socket.IO και παρόμοιο είδος πράγματα - και SocketIO είναι στην πραγματικότητα ένα 1048 00:52:01,090 --> 00:52:03,940 από τα πράγματα που είναι χτισμένο πάνω ως WebSocket το οποίο είναι το είδος των διαθέσιμων 1049 00:52:03,940 --> 00:52:06,440 ως μέρος της HTML5 - 1050 00:52:06,440 --> 00:52:09,620 που σας επιτρέπει να έχετε αυτό συνέχιση του διαλόγου. 1051 00:52:09,620 --> 00:52:13,990 Και αυτό είναι πολύ χρήσιμο σε ένα διακομιστή συνομιλίας το είδος του πράγματος, διότι είναι 1052 00:52:13,990 --> 00:52:17,390 σαν ένα είδος συνέχιση του διαλόγου σε μερικοί τρόποι γιατί αν είστε κουβέντα 1053 00:52:17,390 --> 00:52:21,540 με κάποιον, μπορείτε απλά να στείλετε ένα μήνυμα κάτω από το σωλήνα, και στη συνέχεια το 1054 00:52:21,540 --> 00:52:23,940 server μπορεί να στείλει ένα μήνυμα προς τα κάτω το σωλήνα με το άλλο πρόσωπο είστε 1055 00:52:23,940 --> 00:52:24,520 κουβεντιάζοντας με. 1056 00:52:24,520 --> 00:52:26,903 Και τότε μπορείτε να έχετε αυτό το ανταλλάσσουν έτσι. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> Έτσι, αυτό είναι το είδος του τι SocketIO είναι καλό για. 1059 00:52:32,850 --> 00:52:38,400 Ο λόγος που χρησιμοποιεί SocketIO WebSockets ως ένα πράγμα είναι ότι σε 1060 00:52:38,400 --> 00:52:43,980 Εκτός από απλά παλιά WebSockets, κάνει επίσης μερικά κόλπα για να βασικά 1061 00:52:43,980 --> 00:52:45,610 είναι συμβατό το πρόγραμμα περιήγησης. 1062 00:52:45,610 --> 00:52:50,040 Έτσι browsers όπως ο Internet Explorer δυστυχώς δεν υποστηρίζουν WebSockets 1063 00:52:50,040 --> 00:52:50,810 δεξιά από το κουτί. 1064 00:52:50,810 --> 00:52:55,290 Γι 'αυτό χρησιμοποιεί κάποιο άλλο είδος δροσερό τακτοποιημένο τα πράγματα με το Adobe Flash για να επιτρέψει 1065 00:52:55,290 --> 00:52:57,170 να έχετε υποστήριξη για cross browser. 1066 00:52:57,170 --> 00:52:58,800 Έτσι, αυτό είναι πραγματικά χρήσιμο. 1067 00:52:58,800 --> 00:53:02,440 >> Και στην πραγματικότητα, ξέρω ότι είμαι το είδος του τρέχει στο χρόνο εδώ, αλλά CS50 1068 00:53:02,440 --> 00:53:08,490 Συζητήστε, έχετε δει ποτέ κάτι όπως, δεν ξέρω, κενό έτσι και έτσι είναι 1069 00:53:08,490 --> 00:53:11,030 απάντηση σε αυτή τη θέση ή κάτι έτσι, αυτό το χαρακτηριστικό; 1070 00:53:11,030 --> 00:53:12,250 Αυτό είναι SocketIO. 1071 00:53:12,250 --> 00:53:15,580 Έτσι, όταν κάποιος ξεκινά πληκτρολογώντας το συζητήσουν το πλαίσιο για να κάνει μια απάντηση, ή 1072 00:53:15,580 --> 00:53:20,040 κάτι, το πρόγραμμα περιήγησής σας κάνει ό, τι είναι κάλεσε SocketIO εκπέμπει κάποιο είδος 1073 00:53:20,040 --> 00:53:22,660 γεγονός που λέει κάποιος ότι είναι απάντηση σε αυτή τη θέση. 1074 00:53:22,660 --> 00:53:26,110 >> Στη συνέχεια, ο διακομιστής λέει, εντάξει, τι πρέπει να κάνω; 1075 00:53:26,110 --> 00:53:29,270 Καλά τώρα έχω να πω αυτά τα άλλα παιδιά που βρίσκονται σε CS50 Συζητήστε ψάχνετε 1076 00:53:29,270 --> 00:53:31,170 σε αυτή τη θέση ότι κάποιος είναι απάντηση. 1077 00:53:31,170 --> 00:53:34,190 Έτσι, αυτό είναι το είδος του τι είναι SocketIO καλό για, αυτό το είδος της συνεχιζόμενης 1078 00:53:34,190 --> 00:53:35,930 ροή του διαλόγου. 1079 00:53:35,930 --> 00:53:37,250 OK. 1080 00:53:37,250 --> 00:53:40,060 >> Έτσι, αυτό που έχουμε εδώ - και είμαστε μόλις πρόκειται να αγνοήσει τον πίνακα συνδέσεων 1081 00:53:40,060 --> 00:53:41,390 για λίγο - 1082 00:53:41,390 --> 00:53:43,080 αυτό που κάνω είναι να κάνω μια άλλη ακούσετε. 1083 00:53:43,080 --> 00:53:46,880 Έτσι, αυτός είναι ακριβώς ο τρόπος με τον Socket.IO είναι λέγοντας ας ακούσουμε σε αυτή τη θύρα. 1084 00:53:46,880 --> 00:53:50,060 Και τότε κάνω αυτό σχετικά με τη σύνδεση. 1085 00:53:50,060 --> 00:53:53,360 Έτσι, αυτό είναι μόνο βασικά Socket ΔΟ τρόπος για να πούμε, όταν λάβουμε μια 1086 00:53:53,360 --> 00:53:55,840 σύνδεσης, θέλω για να εκτελέσετε αυτόν τον κώδικα. 1087 00:53:55,840 --> 00:53:59,870 >> Και παρατηρήσετε ότι αντί να rec ΑΠΕ και πέρασε εκεί έχω Socket. 1088 00:53:59,870 --> 00:54:03,260 Και αυτό Socket ιδέα είναι βασικά αυτό πράγμα που μπορείτε να γράψετε και να διαβάσετε 1089 00:54:03,260 --> 00:54:05,750 από ότι έχει το χρήστη μηνύματα, ενδεχομένως. 1090 00:54:05,750 --> 00:54:10,700 Και τα μηνύματα που θα στείλει να πάτε μέσω αυτού του Socket. 1091 00:54:10,700 --> 00:54:12,140 Μήπως αυτό έχει νόημα; 1092 00:54:12,140 --> 00:54:14,490 Έτσι είναι αυτή η συνεχής πράγμα. 1093 00:54:14,490 --> 00:54:17,820 >> Έτσι, αυτό που κάνω είναι να καλέσετε Socket.emit. 1094 00:54:17,820 --> 00:54:20,330 Και εκπέμπουν παίρνει λίγο πολύ δύο επιχειρήματα. 1095 00:54:20,330 --> 00:54:24,100 Το πρώτο επιχείρημα είναι ένα string απλά αντιπροσωπεύει τον τύπο του 1096 00:54:24,100 --> 00:54:25,270 πράγμα είστε εκπομπής. 1097 00:54:25,270 --> 00:54:28,120 Έτσι, για την περίπτωση αυτή, έχω χρήσης αυτή η συμβολοσειρά νέο μήνυμα. 1098 00:54:28,120 --> 00:54:32,670 Και αυτό είναι μόνο βασικά λέγοντας ότι το είδος του αυτό το πράγμα, τι είμαι 1099 00:54:32,670 --> 00:54:34,750 αποστολή, είναι ένα νέο μήνυμα. 1100 00:54:34,750 --> 00:54:38,460 Έτσι, μπορείτε να ακούσετε για συγκεκριμένους τύπους σαν νέο μήνυμα ή οτιδήποτε άλλο 1101 00:54:38,460 --> 00:54:39,960 χρησιμοποιώντας κουκκίδα στο. 1102 00:54:39,960 --> 00:54:44,570 >> Έτσι, τη σύνδεση και ο χρήστης έστειλε εκεί, αν κοιτάξετε, όπου καλούμε κουκκίδα στο, 1103 00:54:44,570 --> 00:54:48,150 αυτά είναι άλλες χορδές που αντιπροσωπεύουν τύπους μηνυμάτων του χρήστη. 1104 00:54:48,150 --> 00:54:52,060 Έτσι είναι βασικά μπορείτε να έχετε αυτό το emit ένας από αυτούς τους τύπους μηνυμάτων, και 1105 00:54:52,060 --> 00:54:55,520 συνέχεια να κάνουμε κάτι για την αντιμετώπιση ένας από αυτούς τους τύπους μηνύματος 1106 00:54:55,520 --> 00:54:57,640 >> Έτσι είμαι εκπέμπουν αυτό το νέο μήνυμα. 1107 00:54:57,640 --> 00:55:00,540 Εμείς πάμε για να αγνοήσει connections.push για ένα δευτερόλεπτο. 1108 00:55:00,540 --> 00:55:03,360 Στη συνέχεια, όμως λέω, έστειλε Socket.on χρήστη. 1109 00:55:03,360 --> 00:55:07,540 Έτσι, τώρα είναι κάτι σαν όταν η χρήστη μου στέλνει ένα μήνυμα, θέλω 1110 00:55:07,540 --> 00:55:09,240 μπορείτε να εκτελέσετε αυτόν τον κώδικα. 1111 00:55:09,240 --> 00:55:12,080 Και να παρατηρήσετε ότι η ανώνυμη συνάρτηση λαμβάνει στη μεταβλητή αυτή 1112 00:55:12,080 --> 00:55:16,300 ονομάζονται στοιχεία τα οποία είναι βασικά πρόκειται να έχει το μήνυμα του χρήστη. 1113 00:55:16,300 --> 00:55:20,700 >> Έτσι, τώρα ας το είδος της ομιλίας για η σειρά των συνδέσεων. 1114 00:55:20,700 --> 00:55:24,590 Έτσι, αυτό είναι σχεδιασμένο για έναν πελάτη συνομιλίας όπου ουσιαστικά όλοι είναι είδος σε 1115 00:55:24,590 --> 00:55:25,950 το ίδιο δωμάτιο συνομιλίας. 1116 00:55:25,950 --> 00:55:29,640 Έτσι, βασικά, αυτό που πρέπει να κρατήσει είναι γύρω από κάποια διάταξη που ουσιαστικά 1117 00:55:29,640 --> 00:55:33,170 αντιπροσωπεύει όλους τους ανθρώπους να συζητάνε σε μερικοί τρόποι, αν αυτό έχει νόημα. 1118 00:55:33,170 --> 00:55:33,340 Σωστά; 1119 00:55:33,340 --> 00:55:37,190 Επειδή πρέπει να γνωρίζουμε ποιος αυτούς τους τύπους είναι έτσι μπορούμε να τους στείλουμε τα μηνύματα 1120 00:55:37,190 --> 00:55:39,140 ότι οι άλλοι άνθρωποι να μας στείλετε. 1121 00:55:39,140 --> 00:55:44,440 >> Έτσι τι αυτός ο κώδικας δεν είναι όταν ο χρήστης στέλνει ένα μήνυμα - αυτό είναι το είδος του 1122 00:55:44,440 --> 00:55:45,300 η εκδήλωση - 1123 00:55:45,300 --> 00:55:47,120 θα πάμε να εκτελέσετε αυτόν τον κώδικα. 1124 00:55:47,120 --> 00:55:51,240 Και αυτό που κάνουμε είναι να τρέχει μέσα από αυτό πίνακα που ζητήσαμε συνδέσεις. 1125 00:55:51,240 --> 00:55:54,390 Και λίγο πολύ για κάθε σύνδεση εκτός από αυτό που είναι δικό μας, που είναι 1126 00:55:54,390 --> 00:55:59,520 τι λέει αυτός ο κώδικας, πρέπει να στείλετε ένα νέο μήνυμα με αυτό το συνημμένο μήνυμα 1127 00:55:59,520 --> 00:56:01,210 πληροφορίες. 1128 00:56:01,210 --> 00:56:04,880 >> Έτσι, αν παρατηρήσετε εδώ, τι έκανα όταν ο χρήστης κάνει πραγματικά μια νέα 1129 00:56:04,880 --> 00:56:08,560 σύνδεση έχω προσθέσει με το Μέθοδος JavaScript.push, αυτό είναι 1130 00:56:08,560 --> 00:56:12,100 βασικά ακριβώς όπως λέγοντας προσθήκη ότι Socket ως αξία σε 1131 00:56:12,100 --> 00:56:13,900 array συνδέσεις μας. 1132 00:56:13,900 --> 00:56:20,560 Μέχρι τώρα, όταν αυτός ο κώδικας εκτελείται, θα να στείλετε τα πράγματα σε εκείνους συγκεκριμένο 1133 00:56:20,560 --> 00:56:22,020 συνδέσεις. 1134 00:56:22,020 --> 00:56:26,980 Έτσι, αυτό μπορεί να είναι ένα καλό σημείο εκκίνησης για την κατασκευή ενός διακομιστή συνομιλίας 1135 00:56:26,980 --> 00:56:28,250 ή κάτι παρόμοιο. 1136 00:56:28,250 --> 00:56:33,315 >> Και το είδος της δροσερό πράγμα είναι ότι η κωδικό που βλέπετε εδώ, όπως και στις 1137 00:56:33,315 --> 00:56:36,390 εκπέμπουν και τα πράγματα όπως ότι είναι η ίδια είδος κώδικα JavaScript που θα κάνατε 1138 00:56:36,390 --> 00:56:39,260 γράψετε στο πρόγραμμα περιήγησης για να αλληλεπιδράσουν με το διακομιστή. 1139 00:56:39,260 --> 00:56:42,480 Έτσι, γι 'αυτό SocketIO είναι το είδος του τακτοποιημένη και χρήσιμα με αυτόν τον τρόπο. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> Αχ και μόνο ένα περισσότερο πράγμα πραγματικά γρήγορα. 1142 00:56:49,250 --> 00:56:55,970 Υπήρξε μια CS50 τελικό σχέδιο του περασμένου έτους ότι εφαρμόζονται ουσιαστικά μια συνομιλία 1143 00:56:55,970 --> 00:56:57,840 διακομιστή Node.js. 1144 00:56:57,840 --> 00:57:01,350 Νομίζω ότι είναι Harvardchats.org αλλά δεν είμαι - 1145 00:57:01,350 --> 00:57:02,940 OK. 1146 00:57:02,940 --> 00:57:06,190 Δεν είμαι σίγουρος ποια είναι η διεύθυνση URL είναι, αλλά Μπορώ να στείλω ότι έξω αργότερα. 1147 00:57:06,190 --> 00:57:09,260 Αλλά είναι το είδος της δροσερό τι μπορείτε να κάνετε με Node.js. 1148 00:57:09,260 --> 00:57:14,680 >> Ελπίζω, λοιπόν, σε γενικές γραμμές, εσείς έχετε μια καλή αίσθηση του τι είναι χρήσιμο Node.js 1149 00:57:14,680 --> 00:57:17,870 και για το πώς θα μπορούσε ίσως να εφαρμοστεί στο τελικό σχέδιο σας. 1150 00:57:17,870 --> 00:57:21,050 Θα πρέπει να στείλει τους λίγο περισσότερο πόρων μαζί με αυτό. 1151 00:57:21,050 --> 00:57:23,170 Και σας ευχαριστώ που ήρθατε. 1152 00:57:23,170 --> 00:57:23,610 Σας ευχαριστώ. 1153 00:57:23,610 --> 00:57:27,168 >> [Χειροκροτήματα]