1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> KEVIN SCHMID: Hei kaikki. 3 00:00:09,710 --> 00:00:12,640 Tervetuloa CS50 seminaari on Node.js. 4 00:00:12,640 --> 00:00:13,955 Nimeni on Kevin. 5 00:00:13,955 --> 00:00:15,580 Olen CS50 TF. 6 00:00:15,580 --> 00:00:17,650 Ja olen tavallaan kuin todella innoissani tästä seminaarin. 7 00:00:17,650 --> 00:00:20,430 Mielestäni Node.js on hyvin viileä. 8 00:00:20,430 --> 00:00:24,200 Toivon, että tämä seminaari voidaan käyttää niin hyvä, luulisin, ponnahduslautana 9 00:00:24,200 --> 00:00:26,380 joku opinnäytetyöt jos olet kiinnostunut käyttämään 10 00:00:26,380 --> 00:00:27,630 jotain Node.js. 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> Me tavallaan alkaa seminaarin pois puhu vain hieman 13 00:00:33,320 --> 00:00:36,970 Tällainen tausta skaalautuvuus näkökulmia Node.js, ja sitten 14 00:00:36,970 --> 00:00:39,240 me siirtyä koodia esimerkkejä. 15 00:00:39,240 --> 00:00:42,340 Ja Otan koodin verkkosivuilla, ja voit tarkastella koodia. 16 00:00:42,340 --> 00:00:45,475 Ja seminaarin jälkeen, minä lajitella puhetta siitä, miten voit perustaa Node.js 17 00:00:45,475 --> 00:00:48,220 tietokoneellesi. 18 00:00:48,220 --> 00:00:48,710 >> OK. 19 00:00:48,710 --> 00:00:49,760 Joten pääset alkuun. 20 00:00:49,760 --> 00:00:53,700 Joten kai haluan vain puhua web-palvelimia, todella, ensin. 21 00:00:53,700 --> 00:00:59,730 Ja aloittaa tämän keskustelun, I pohjimmiltaan on kaavio, joka on peräisin 22 00:00:59,730 --> 00:01:04,269 oppikirja käytetään CS61, joka Yhtälö osoittaa lähinnä vuorovaikutus 23 00:01:04,269 --> 00:01:08,510 välillä asiakkaan prosessi, kuten web selaimen tai kuten teidän tavoitteena asiakas tai 24 00:01:08,510 --> 00:01:11,340 jotain, ja web-palvelin. 25 00:01:11,340 --> 00:01:15,150 Joten tällainen näyttää samanlaiselta kuva että näit luento 26 00:01:15,150 --> 00:01:19,270 Keskiviikko jossa pohjimmiltaan meillä on joitakin asiakasprosessi kuten Google Chrome. 27 00:01:19,270 --> 00:01:22,980 >> Ja sitten ensimmäinen vaihe on Asiakas lähettää pyynnön. 28 00:01:22,980 --> 00:01:27,510 Niin, että voi olla jotain hyvin katsotaanpa käy, en tiedä, CS50.net. 29 00:01:27,510 --> 00:01:29,320 Joten olemme antaneet tätä pyyntöä. 30 00:01:29,320 --> 00:01:34,280 Ja ei kukaan muista nimeä protokolla, joka määrittää, miten se 31 00:01:34,280 --> 00:01:35,610 pyyntö olisi organisoitava? 32 00:01:35,610 --> 00:01:36,382 Jep. 33 00:01:36,382 --> 00:01:37,650 >> Yleisö: [kuultavissa]. 34 00:01:37,650 --> 00:01:38,150 >> KEVIN SCHMID: Aivan. 35 00:01:38,150 --> 00:01:40,100 Joten se on kuin HTTP, eikö? 36 00:01:40,100 --> 00:01:44,720 Joten periaatteessa eritelmän miten että pyyntö olisi todella vahvistettava 37 00:01:44,720 --> 00:01:47,450 ulos, koska lopussa päivä, että pyyntö on todella aivan kuten 38 00:01:47,450 --> 00:01:50,240 merkkijono, joka periaatteessa sanoo Haluan tämän. 39 00:01:50,240 --> 00:01:53,580 Ja erittely varten, joka on HTTP. 40 00:01:53,580 --> 00:01:55,270 Niin, että on kuin protokollaa. 41 00:01:55,270 --> 00:01:57,920 >> Joten sitten palvelin vastaanottaa tätä pyyntöä. 42 00:01:57,920 --> 00:02:01,610 Joten teillä web-palvelin on asennettu vuonna CS50 laitteen. 43 00:02:01,610 --> 00:02:02,460 Se on Apache. 44 00:02:02,460 --> 00:02:06,230 Ja tällä viikolla kun työtä ongelman asettaa seitsemän, sinun todella työskennellä 45 00:02:06,230 --> 00:02:08,160 kanssa, että web-palvelin. 46 00:02:08,160 --> 00:02:12,380 Joten palvelin vastaanottaa tämän pyynnön, ja niin se on eräänlainen raapia sen 47 00:02:12,380 --> 00:02:15,090 pään ja sanoa kuin hyvin, mitä teen tämän? 48 00:02:15,090 --> 00:02:20,060 >> Joten sen perusteella, mitä se päättää tehdä, niin se voi joutua ottamaan yhteyttä jonkinlainen 49 00:02:20,060 --> 00:02:20,730 resurssien. 50 00:02:20,730 --> 00:02:23,700 Ja että materiaalia voisi paljon erilaisia ​​asioita. 51 00:02:23,700 --> 00:02:26,810 Ensinnäkin se voi olla vain kuten staattinen HTML-tiedosto. 52 00:02:26,810 --> 00:02:29,820 Niin se voisi vain olla kuten jotkut HTML, että on kuin 53 00:02:29,820 --> 00:02:31,100 oma verkkosivusto. 54 00:02:31,100 --> 00:02:35,360 Se voisi olla staattinen tiedosto kuten kuva tai kuten elokuva, joka sinulla on. 55 00:02:35,360 --> 00:02:37,660 Se voisi jopa pitää puhua jonkinlainen tietokanta 56 00:02:37,660 --> 00:02:39,530 kuten MySQL-tietokanta. 57 00:02:39,530 --> 00:02:43,910 Joten se ei aina tarvitse kommunikoida kanssa voimavara, mutta 58 00:02:43,910 --> 00:02:45,700 Joissakin tapauksissa se voisi. 59 00:02:45,700 --> 00:02:47,800 >> Joten sitten, mitä se aikoo tehdä sen jälkeen se menee 60 00:02:47,800 --> 00:02:49,430 lähettää takaisin vastauksen. 61 00:02:49,430 --> 00:02:53,130 Ja vastaus tähän on myös määritelty HTTP. 62 00:02:53,130 --> 00:02:54,830 Niin sitten asiakas voi vastaanottaa sitä. 63 00:02:54,830 --> 00:02:56,740 Se voi repiä sen lisäksi ja käsitellä sitä. 64 00:02:56,740 --> 00:03:00,900 Ja sitten saat web-sivun kuten Google tai CS50.net tai 65 00:03:00,900 --> 00:03:02,240 mitä menit. 66 00:03:02,240 --> 00:03:03,100 OK? 67 00:03:03,100 --> 00:03:06,080 >> Joten tämä on perus vuorovaikutus, joka aiomme olla tekemisissä. 68 00:03:06,080 --> 00:03:08,770 Ja me aika paljon olemaan keskitytään tässä osassa 69 00:03:08,770 --> 00:03:10,640 vuorovaikutusta, palvelin. 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 Kellään mitään kysyttävää tähän mennessä? 73 00:03:15,500 --> 00:03:17,720 OK. 74 00:03:17,720 --> 00:03:22,430 >> Joten kuten sanoimme, web-palvelin vastaanottaa HTTP-pyynnön ja antaa sitten tämän 75 00:03:22,430 --> 00:03:24,760 HTTP-vastaus. 76 00:03:24,760 --> 00:03:29,100 Ja kuten puhuimme aiemmin, CS50 laitteen web-palvelin on Apache. 77 00:03:29,100 --> 00:03:32,490 Joten kun te työskennellä P asettaa seitsemän, aiot olla kanssa 78 00:03:32,490 --> 00:03:34,120 Apache www-palvelin. 79 00:03:34,120 --> 00:03:37,890 Sinun ei koskaan todella työtä Apache suoraan liikaa. 80 00:03:37,890 --> 00:03:41,920 Olet tavallaan määrittää Apache hieman kun olet määrittänyt virtuaalinen hosts tai 81 00:03:41,920 --> 00:03:44,970 v isännät, ja me saamme kuin vuonna hieman. 82 00:03:44,970 --> 00:03:50,620 >> Mutta pohjimmiltaan, Apache www-palvelin asetettu toimimaan PHP laji 83 00:03:50,620 --> 00:03:51,730 on kättelyssä. 84 00:03:51,730 --> 00:03:56,170 Joten mitä todella tapahtuu, on kun menet Jonkin verkkosivustoja kuten vaikkapa 85 00:03:56,170 --> 00:04:00,360 paikallinen isäntä slash index.php tai jotain, on selaimesi lähettää, että 86 00:04:00,360 --> 00:04:04,330 pyynnöstä, ja sitten Apache istuu siellä ja keksii tekemistä sen kanssa. 87 00:04:04,330 --> 00:04:08,840 Ja toiminta on toteuttaa että koodi index.php ja 88 00:04:08,840 --> 00:04:11,330 lähettää sen sitten pois takaisin. 89 00:04:11,330 --> 00:04:15,640 Joten ei tuo. 90 00:04:15,640 --> 00:04:16,980 Joten me tavallaan puhuneet tästä. 91 00:04:16,980 --> 00:04:21,990 Niin se voisi vain palvella staattinen tiedosto tai ajaa joitakin PHP-koodin ja sitten kysymys 92 00:04:21,990 --> 00:04:23,510 vastaus. 93 00:04:23,510 --> 00:04:27,670 >> Niin sitten yleinen kysymys, joka voi tulla up on hyvin, miten me todella käsitellä 94 00:04:27,670 --> 00:04:31,750 kanssa, joilla on useita käyttäjiä samaan aikaan? 95 00:04:31,750 --> 00:04:36,930 Joten kuvitella, jos olit kirjallisesti web palvelimeen, jos sinulla on ollut web-palvelin, joka 96 00:04:36,930 --> 00:04:39,900 yritit kirjoittaa jotain kuten C tai jotain, 97 00:04:39,900 --> 00:04:45,150 periaatteessa voit miettiä, miten siellä voisi olla jonkinlainen koodi, joka 98 00:04:45,150 --> 00:04:49,330 saisivat pyynnöstä, mutta sitten sillä on tekemistä kaiken tämän työtä. 99 00:04:49,330 --> 00:04:53,060 Se voi olla, esimerkiksi, ota yhteyttä tietokanta tai jotain. 100 00:04:53,060 --> 00:04:53,300 Oikea? 101 00:04:53,300 --> 00:04:56,010 Ja sitten se tekisi tuollaista jalostuksen ja sitten 102 00:04:56,010 --> 00:04:57,060 lähetetään takaisin vastauksen. 103 00:04:57,060 --> 00:04:58,950 Niin, että on kuin suuri yleiskatsauksen. 104 00:04:58,950 --> 00:05:04,210 >> Mutta se ei ole heti selvää, kuinka voit voi tehdä niin, että kaksi ihmistä tai 105 00:05:04,210 --> 00:05:09,040 jopa 1000 ihmiset voisivat työskennellä oman Web-palvelin samaan aikaan. 106 00:05:09,040 --> 00:05:14,880 Joten ratkaisu Apache käyttää kutsutaan kierteet tai prosesseja. 107 00:05:14,880 --> 00:05:16,770 Joten olet ehkä kuullut nämä ehdot ennen. 108 00:05:16,770 --> 00:05:22,190 Se on OK, jos et ole, mutta ajatelkaa noin kierteet tai prosesseja tapoja 109 00:05:22,190 --> 00:05:26,290 käyttöjärjestelmän tai käyttäjän ohjelman tai jotain tai web-palvelin 110 00:05:26,290 --> 00:05:28,810 tavallaan suorittaa useita asiaa kerralla. 111 00:05:28,810 --> 00:05:31,760 Niin olet ehkä kuullut termin kuten suoritussäikeet. 112 00:05:31,760 --> 00:05:34,140 Joten se on sellainen kuin olet eräänlainen moniajo. 113 00:05:34,140 --> 00:05:37,710 >> Ja jos olet nähnyt ruutuun oman kannettava tietokone, tai jotain sellaista, 114 00:05:37,710 --> 00:05:43,040 multicore, mitä voit tehdä on, voit ajaa kahdella eri langalla eri 115 00:05:43,040 --> 00:05:46,700 osat CPU niin, että ne voivat itse asiassa tapahtua samaan aikaan. 116 00:05:46,700 --> 00:05:48,100 Joten tämä on todella voimakas. 117 00:05:48,100 --> 00:05:52,270 Ja tämä on tavallaan Apachen ratkaisu tähän ongelmaan. 118 00:05:52,270 --> 00:05:57,900 >> Joten on olemassa ikään kuin mitään ongelmia Tämän lähestymistavan vaikka? 119 00:05:57,900 --> 00:05:59,870 Joten kai minä tavallaan kirjoitin ne siellä. 120 00:05:59,870 --> 00:06:03,440 Mutta molemmat tavallaan käyttää paljon muistia. 121 00:06:03,440 --> 00:06:07,490 Se on erittäin kallista luoda lanka tai prosessi. 122 00:06:07,490 --> 00:06:11,750 >> Ja osa perustelu on, että vain kuten kun käytät C-ohjelma 123 00:06:11,750 --> 00:06:15,090 kuten sinun tärkein ja sitten että puhelut toinen toiminto, joka on 124 00:06:15,090 --> 00:06:16,520 jonkinlainen pino. 125 00:06:16,520 --> 00:06:19,910 Joten kierteet vaativat myös kokonaan erillinen pino joka 126 00:06:19,910 --> 00:06:21,220 voi olla varsin suuri. 127 00:06:21,220 --> 00:06:25,170 Ja jos voit kuvitella tonnia käyttäjät sivustossasi, olisit 128 00:06:25,170 --> 00:06:26,280 paljon erilaisia ​​kierteitä. 129 00:06:26,280 --> 00:06:28,230 Se on paljon pinot hallita ja ylläpitää. 130 00:06:28,230 --> 00:06:31,280 Joten se on suuri muistin kulutusta. 131 00:06:31,280 --> 00:06:35,650 >> Ja sitten, myös, sanokaamme sinulla on vain yksi prosessori, tai sanokaamme olet 132 00:06:35,650 --> 00:06:38,460 enemmän kierteet kuin sinulla nämä multicores. 133 00:06:38,460 --> 00:06:38,730 Oikea? 134 00:06:38,730 --> 00:06:43,280 Joten sanokaamme olet ollut 10 langat ja sinulla oli vain viisi suorittimia. 135 00:06:43,280 --> 00:06:46,260 Tavallaan täytyy tehdä tämä asia, jos voit vaihtaa nykyisen 136 00:06:46,260 --> 00:06:49,090 yksi, joka on pysäytetty, koska voi ajaa kaikki 10 kerralla. 137 00:06:49,090 --> 00:06:50,980 Ja sitä kutsutaan kontekstin vaihto. 138 00:06:50,980 --> 00:06:54,260 Ja että termi on itse asiassa pari eri yhteyksissä, mutta haluan vain 139 00:06:54,260 --> 00:06:56,620 ajatella sitä kytkentä kahden kierteet. 140 00:06:56,620 --> 00:06:59,730 Se voi olla melko kallista, koska periaatteessa mitä sinun täytyy tehdä on sinulle 141 00:06:59,730 --> 00:07:03,340 täytyy lopettaa se, mitä olet tekemässä, tallenna valtion että käynnissä lanka, ja 142 00:07:03,340 --> 00:07:05,440 vaihtaa sitten jossain muualla. 143 00:07:05,440 --> 00:07:09,420 >> Joten ei kaikki sellainen katso motivaatio miksi kierteet ja 144 00:07:09,420 --> 00:07:12,030 prosesseissa voisi olla hieman tilaa vieviä? 145 00:07:12,030 --> 00:07:13,840 Ja oliko sinulla kysymys? 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 Kellään mitään kysyttävää? 149 00:07:18,090 --> 00:07:19,620 OK. 150 00:07:19,620 --> 00:07:26,720 >> Joten jos otamme askeleen taaksepäin toiseen, siellä on sellainen kuin 151 00:07:26,720 --> 00:07:30,350 havainto, että voimme tehdä noin paljon web-sovelluksia. 152 00:07:30,350 --> 00:07:34,810 Ja se on todellakin niin paljon niitä itse ei tee niin paljon hyödyllistä 153 00:07:34,810 --> 00:07:37,140 työskentelevät sisällä säiettä. 154 00:07:37,140 --> 00:07:41,170 Joten on joku alkoi P asettaa seitsemän ollenkaan? 155 00:07:41,170 --> 00:07:45,650 Joten haluat ehkä kuvailla joitakin osia? 156 00:07:45,650 --> 00:07:47,850 Olet työskennellyt login tai jotain? 157 00:07:47,850 --> 00:07:49,330 >> Yleisö: Ei. 158 00:07:49,330 --> 00:07:49,780 >> KEVIN SCHMID: OK. 159 00:07:49,780 --> 00:07:50,150 Ei se haittaa. 160 00:07:50,150 --> 00:07:50,900 Anteeksi. 161 00:07:50,900 --> 00:07:55,790 Mutta pohjimmiltaan P joukko, olet aiotaan tehdä paljon eräänlainen 162 00:07:55,790 --> 00:07:59,760 kyselyitä tietokantaan hakemaan tiedot tästä tietokannasta. 163 00:07:59,760 --> 00:08:03,330 Ja mitä koodia aiotaan tehdä, mitä tuo Apache prosessin tai 164 00:08:03,330 --> 00:08:06,030 että Apache kierre aiotaan tehdä kun se on otettava yhteyttä 165 00:08:06,030 --> 00:08:08,990 tietokanta on se tavallaan olemaan istuu siellä ja se tulee olemaan 166 00:08:08,990 --> 00:08:12,130 odottaa tietokannan vastata. 167 00:08:12,130 --> 00:08:16,290 >> Nyt ei ehkä kuulosta kovin suuri käsitellä, koska tietokanta on teidän 168 00:08:16,290 --> 00:08:18,240 CS50 laite, eikö? 169 00:08:18,240 --> 00:08:22,930 Mutta on jonkinlainen verkon latenssi siellä, koska nyt web 170 00:08:22,930 --> 00:08:26,830 palvelin on antaa omia pyynnön Tietokannan kommunikoida 171 00:08:26,830 --> 00:08:29,520 tietokantaan ja saada siitä, että tiedot takaisin. 172 00:08:29,520 --> 00:08:33,190 Joten nyt se on kuin hyvin odottaa minua, olen mene saada jotain 173 00:08:33,190 --> 00:08:35,770 tietokanta ja sitten on paljon odottaa tekeillä. 174 00:08:35,770 --> 00:08:36,870 Onko järkeä? 175 00:08:36,870 --> 00:08:38,580 >> Ja joitakin asioita se ei ole niin paha. 176 00:08:38,580 --> 00:08:41,950 Jos se vain on, esimerkiksi Access Memory, että ei ole kuin 177 00:08:41,950 --> 00:08:44,100 kamala I / O-latenssi. 178 00:08:44,100 --> 00:08:47,110 Ja kun sanon, I / O-latenssi, mitä olen viitaten on kuin mikä tahansa sellainen kuin 179 00:08:47,110 --> 00:08:48,290 input output. 180 00:08:48,290 --> 00:08:52,950 Mutta käyttää tiedoston levylle, kuten jos halusin palvella staattinen HTML 181 00:08:52,950 --> 00:08:57,850 tiedostoon, joka oli minun web-sivu tai jotain, olen sellainen on 182 00:08:57,850 --> 00:09:02,310 pysähtyä vähän, lukenut, että tiedosto sisään levyn, ja sitten 183 00:09:02,310 --> 00:09:04,400 että prosessi Odotan. 184 00:09:04,400 --> 00:09:06,700 En tee hyödyllistä työtä. 185 00:09:06,700 --> 00:09:11,270 >> Tämä ei ole totta kaikesta, mutta se on yleinen sovelluksia, kuten P sarja 186 00:09:11,270 --> 00:09:13,960 seitsemän ja paljon hakemuksia että et ole 187 00:09:13,960 --> 00:09:15,440 todella tekee paljon ajattelua. 188 00:09:15,440 --> 00:09:19,090 Ja kun sanon ajattelua, tarkoitan kuten laskennallisia työtä. 189 00:09:19,090 --> 00:09:23,270 Joten laskennallinen työ voisi olla jotain kuten vaikkapa halusit 190 00:09:23,270 --> 00:09:26,590 kirjoittaa web-palvelin, joka äsken lasketut nnen Fibonacci numero. 191 00:09:26,590 --> 00:09:29,300 Se ei kuulosta erityisen hauskaa web-palvelin. 192 00:09:29,300 --> 00:09:34,220 Kuten En odota, että sivusto on Seuraavan Facebook, mutta se on jonkin verran 193 00:09:34,220 --> 00:09:35,610 Tällainen laskennallisen työtä. 194 00:09:35,610 --> 00:09:39,570 >> Ja voitte kuvitella korvaavassa kanssa jokin muu mielenkiintoinen 195 00:09:39,570 --> 00:09:43,070 laskennallisen työtä. 196 00:09:43,070 --> 00:09:46,050 Sanotaan olit kirjoittaa jotain että laskettu astetta 197 00:09:46,050 --> 00:09:49,170 toisistaan ​​kaksi ihmistä tai jotain sellaista. 198 00:09:49,170 --> 00:09:51,860 Niin että ei liity jonkinlaista laskennan, eikö? 199 00:09:51,860 --> 00:09:56,630 Ja silloinkin, tehdä, että sinulla on vielä tehdä paljon odottaa ehkä 200 00:09:56,630 --> 00:09:59,550 sinulla on kyselyn tietokantaan etsiä ylös kuka on ystävä, kuka tai 201 00:09:59,550 --> 00:10:00,600 jotain sellaista. 202 00:10:00,600 --> 00:10:03,510 On siis olemassa sellainen käsite laskennallisen työtä. 203 00:10:03,510 --> 00:10:05,260 Onko järkeä? 204 00:10:05,260 --> 00:10:08,258 Onko kellään mitään kysyttävää? 205 00:10:08,258 --> 00:10:11,960 >> Niin ja kai laittaa chat-palvelimia siellä koska chat palvelimet ovat eräänlainen 206 00:10:11,960 --> 00:10:13,240 Toinen hyvä esimerkki tästä. 207 00:10:13,240 --> 00:10:15,250 Chat-palvelimeen ei ole tehdä paljon ajattelua. 208 00:10:15,250 --> 00:10:18,350 Se vain on odottaa, että ihmiset lähettää viestejä ja sitten kun 209 00:10:18,350 --> 00:10:19,800 ne, lähettää ne. 210 00:10:19,800 --> 00:10:21,050 OK? 211 00:10:21,050 --> 00:10:23,410 212 00:10:23,410 --> 00:10:28,180 >> Joten vain kertaus uudelleen, Apache ja vastaavat web-palvelimia kuten että haarukka 213 00:10:28,180 --> 00:10:31,470 Paljon kierteet ja prosesseja, jotka voi olla sellainen tuhlausta. 214 00:10:31,470 --> 00:10:37,530 Joten kai kysymys, joka voi tulla siitä on meillä täytyy olla 215 00:10:37,530 --> 00:10:39,610 useita säikeitä ja prosesseja? 216 00:10:39,610 --> 00:10:41,890 Mitä jos meillä oli vain yksi? 217 00:10:41,890 --> 00:10:45,710 >> Joten tavallaan maalata kuvan mitä tämä näyttäisi. 218 00:10:45,710 --> 00:10:47,810 Joten käyttää vain yhtä säiettä. 219 00:10:47,810 --> 00:10:48,660 OK? 220 00:10:48,660 --> 00:10:52,790 Joten vain kuvitella tämän yhdellä säiettä. 221 00:10:52,790 --> 00:10:56,600 >> Oletetaan emme oikeastaan ​​tee että paljon hyödyllistä - ja kun sanon 222 00:10:56,600 --> 00:10:59,450 hyödyllistä, tarkoitan laskennallisen työtä - 223 00:10:59,450 --> 00:11:01,130 niissä useita säikeitä ennen. 224 00:11:01,130 --> 00:11:04,180 Joten tavallaan lujittaa kaikki yhdeksi säiettä. 225 00:11:04,180 --> 00:11:07,780 Joten mitä jos meillä olisi yksi säie tuollaista vain menee ympäri silmukan ja 226 00:11:07,780 --> 00:11:10,880 jatkuvasti tarkastuksia teki jotain uusi tapahtua. 227 00:11:10,880 --> 00:11:15,130 Niinpä esimerkiksi, jotain uutta on tapahtunut voisi tarkoittaa Sain jotain takaisin 228 00:11:15,130 --> 00:11:19,310 tietokanta tai joku lähetti minulle uusi HTTP-pyynnön. 229 00:11:19,310 --> 00:11:22,290 Joten ne ovat sellaisia ​​tapahtumia sen tapahtua, eikö? 230 00:11:22,290 --> 00:11:26,130 >> Ja sitten, mitä voin tehdä näitä uusia asioita tapahtuu on tässä samassa säiettä 231 00:11:26,130 --> 00:11:30,120 muuksi, tämä yksittäinen lanka toteutus, voin soittaa joitakin koodi, joka 232 00:11:30,120 --> 00:11:32,410 hoitaisi kyseisen asian. 233 00:11:32,410 --> 00:11:36,640 Niinpä esimerkiksi, jos minulla on jotain takaisin tietokannasta, voisin ajaa minun 234 00:11:36,640 --> 00:11:40,960 pieni laskennallinen osa sitä, että oikeastaan ​​vain valmistelee asia 235 00:11:40,960 --> 00:11:42,620 lähettää takaisin käyttäjälle. 236 00:11:42,620 --> 00:11:46,710 Joten ei sellaista järkeä? 237 00:11:46,710 --> 00:11:49,940 >> Mutta mitä ovat todella seurauksia tästä? 238 00:11:49,940 --> 00:11:50,660 Oikea? 239 00:11:50,660 --> 00:11:53,730 Koska olemme kirjoitettu paljon koodia, joka - 240 00:11:53,730 --> 00:11:58,330 ja olen juuri menossa hypätä eteenpäin diat jos sopii. 241 00:11:58,330 --> 00:12:00,930 Joten jos et mielessä, olen vain menossa ottaa askel taaksepäin. 242 00:12:00,930 --> 00:12:03,410 Joten tällainen asia on nimeltään tapahtuma silmukka. 243 00:12:03,410 --> 00:12:04,070 OK? 244 00:12:04,070 --> 00:12:07,240 Ja se on aika perus Ajatuksena Node.js. 245 00:12:07,240 --> 00:12:11,240 >> Joten mitä Node.js on todella tekee web palvelin on olemassa yksi punainen lanka 246 00:12:11,240 --> 00:12:14,850 että on periaatteessa menee noin silmukka kuin taas yksi sellainen alle 247 00:12:14,850 --> 00:12:18,510 huppu Node.js joka on jatkuvasti tarkkailun, ei saamme uusia asioita? 248 00:12:18,510 --> 00:12:22,720 Ja sitten se ajaa käsittelijät että olet määrittänyt. 249 00:12:22,720 --> 00:12:26,720 Mutta hyvä kysymys on, miten voimme tehdä tämän tapahtua 250 00:12:26,720 --> 00:12:28,090 nykyisten asioita? 251 00:12:28,090 --> 00:12:32,440 >> Joten laitoin linja C-koodia tässä, että periaatteessa näyttää se avaa 252 00:12:32,440 --> 00:12:33,060 tiedostoon, eikö? 253 00:12:33,060 --> 00:12:36,090 I Hän vain tuli ulos albumin. 254 00:12:36,090 --> 00:12:39,600 Joten jouduin avaamaan hänelle uuden tiedoston. 255 00:12:39,600 --> 00:12:43,810 Joten miten meidän C-koodi käyttöä varten - 256 00:12:43,810 --> 00:12:47,890 ja kai syy päätin tiedostoja oli koska tämä on tavallaan määrin 257 00:12:47,890 --> 00:12:52,000 I / O-työstä, jota olemme tehneet C mielessä, että siellä on tulo-lähtö. 258 00:12:52,000 --> 00:12:55,070 Joten me kutsumme tätä koodia tämä F auki. 259 00:12:55,070 --> 00:12:59,370 Ja sitten seuraavalla rivillä meidän ohjelma, voimme nyt työskennellä f. 260 00:12:59,370 --> 00:13:02,710 >> Joten tämä olisi esimerkki jotain se on kuin synkroninen tai 261 00:13:02,710 --> 00:13:06,850 estää sillä että ensimmäinen rivi siellä odotamme kunnes 262 00:13:06,850 --> 00:13:08,110 saat tiedoston auki. 263 00:13:08,110 --> 00:13:12,260 Niin toisella rivillä, me tiedämme, että voi työskennellä f, mutta tämä tarkoittaa, että 264 00:13:12,260 --> 00:13:16,240 että toinen rivi voi oikeastaan ​​ajaa kunnes ensimmäinen rivi on tehty. 265 00:13:16,240 --> 00:13:17,760 Onko järkeä? 266 00:13:17,760 --> 00:13:20,890 >> Joten tämä olisi huono laittaa vuonna tapahtuman käsittelijät. 267 00:13:20,890 --> 00:13:23,920 Ja syy siihen on, että tällaista odottaa, eikö? 268 00:13:23,920 --> 00:13:26,500 Joten tämä palaisi meidät takaisin sama asia. 269 00:13:26,500 --> 00:13:29,470 Ja nyt meillä ei edes ole hyödyksi useita säikeitä tai 270 00:13:29,470 --> 00:13:32,390 prosesseissa, sillä saimme yksi kierre Node.js. 271 00:13:32,390 --> 00:13:35,496 Onko järkeä kaikille? 272 00:13:35,496 --> 00:13:35,990 >> Yleisö: Odota. 273 00:13:35,990 --> 00:13:36,980 Niin mitä vaihto? 274 00:13:36,980 --> 00:13:37,840 >> KEVIN SCHMID: Voi, niin kyllä. 275 00:13:37,840 --> 00:13:39,560 Joten aion päästä korvaamisesta. 276 00:13:39,560 --> 00:13:40,430 OK. 277 00:13:40,430 --> 00:13:42,960 Joten mitä jos meillä olisi jotain että näytti tältä? 278 00:13:42,960 --> 00:13:45,730 Joten mitä jos nyt olen muokannut f avata hieman? 279 00:13:45,730 --> 00:13:48,370 Joten olen ohimennen samassa kaksi perustelua kuin ennen. 280 00:13:48,370 --> 00:13:52,610 Rakastan yhä uusi biisi että hän tuli ulos. 281 00:13:52,610 --> 00:13:57,260 Mutta olen ohimennen Kolmas asia, joka tämä muuttuja nimeltä koodin. 282 00:13:57,260 --> 00:14:02,280 >> Mutta mikä on koodi oikeastaan tässä yhteydessä? 283 00:14:02,280 --> 00:14:05,360 Onko se kuin tavallinen C muuttuja? 284 00:14:05,360 --> 00:14:06,740 Se on toiminto, eikö? 285 00:14:06,740 --> 00:14:09,450 Ja se voi olla hieman outoa, koska Olen oikeastaan ​​kuin nyt kulkee 286 00:14:09,450 --> 00:14:12,320 funktion toisen toiminnon. 287 00:14:12,320 --> 00:14:14,400 >> Joten pari asiaa huomata tästä. 288 00:14:14,400 --> 00:14:17,145 Yksi, en ole oikeastaan ​​soittamalla kooditoiminto. 289 00:14:17,145 --> 00:14:20,650 Joten et näe koodia vasen kantatuote, Oikea sulje. 290 00:14:20,650 --> 00:14:23,010 Olen vain ohimennen koodi. 291 00:14:23,010 --> 00:14:26,990 Ja C, mitä tämä voisi itse tehdä on antaa minulle osoitin, että todelliset 292 00:14:26,990 --> 00:14:29,740 koodi, ja sitten tämä voisi käyttää sitä. 293 00:14:29,740 --> 00:14:33,350 Mutta ajattele sitä olet kulkee koodin suorittamiseen 294 00:14:33,350 --> 00:14:35,150 että tiedosto avataan. 295 00:14:35,150 --> 00:14:41,430 >> Mutta mitä tämä tarkoittaa, että nyt loppuelämäni ohjelma, joka voisi tehdä 296 00:14:41,430 --> 00:14:47,050 muita juttuja, voi jatkossakin tehdä muita kamaa kun me, ei oikeastaan ​​odota, mutta 297 00:14:47,050 --> 00:14:50,890 vain takana päämme että kun tuo tiedoston auki, ajaa joka 298 00:14:50,890 --> 00:14:52,130 koodi yläreunassa. 299 00:14:52,130 --> 00:14:53,390 Onko järkeä? 300 00:14:53,390 --> 00:14:58,060 >> Ja nyt ajatus Node.js on, että koodi do juttuja f 301 00:14:58,060 --> 00:15:04,590 osa pitäisi olla aika lyhyt ja yksinkertainen ja suoraviivaista eikä oikeastaan ​​olla 302 00:15:04,590 --> 00:15:06,160 hyvin laskentaintensiivisiä. 303 00:15:06,160 --> 00:15:09,390 Se voi olla avata toinen tiedosto, mutta että pitäisi olla myös melko nopeasti 304 00:15:09,390 --> 00:15:14,710 koska se olisi vain sanoa tehdä uuden f avata ja sitten kutsua tätä muu koodi. 305 00:15:14,710 --> 00:15:19,100 >> Joten vain olla täysin selvä, f avaa joka tekee uuden Katy Perry biisi 306 00:15:19,100 --> 00:15:23,060 Done mp3, että menee melko paljon palattava välittömästi. 307 00:15:23,060 --> 00:15:27,820 Ja sitten voimme vain jatkossakin tehdä muita juttuja koska kaikki, että nyt f 308 00:15:27,820 --> 00:15:33,410 open kutsussa ei ei kerro pohjimmiltaan taustalla f avoin koodi avaa tätä tiedostoa 309 00:15:33,410 --> 00:15:36,020 ja kun olet valmis avaamassa tiedoston tai kun saat sen takaisin, 310 00:15:36,020 --> 00:15:37,480 suorita kyseisen koodin. 311 00:15:37,480 --> 00:15:39,540 Mutta se ei todella ajaa kyseisen koodin. 312 00:15:39,540 --> 00:15:41,815 Ja teillä oli kysymys? 313 00:15:41,815 --> 00:15:46,180 >> Yleisö: Sinun näytti osoittavan muutaman kertaa, että lisäämällä laskennallisesti 314 00:15:46,180 --> 00:15:50,545 intensiivinen koodi tavallaan rikkoa [Äänetön] vetoinen. 315 00:15:50,545 --> 00:15:51,795 [Äänetön]? 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> KEVIN SCHMID: Tuo on hyvä kysymys. 318 00:15:55,290 --> 00:15:59,280 Joten olen oikeastaan ​​esimerkki siitä, miten voisitte ottaa laskennallisesti 319 00:15:59,280 --> 00:16:01,090 intensiivinen koodia hieman. 320 00:16:01,090 --> 00:16:03,620 Joten kun pääsemme koodi esimerkkejä, Tulen varmasti vetää, että yksi. 321 00:16:03,620 --> 00:16:04,700 Sopiiko? 322 00:16:04,700 --> 00:16:05,950 Kiitos. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> Mikä oli nimesi? 325 00:16:08,750 --> 00:16:10,620 >> Yleisö: Aaron. 326 00:16:10,620 --> 00:16:14,830 >> KEVIN SCHMID: Aaron tuo hyvin hyvä pointti, joka on se, että jos minulla olisi 327 00:16:14,830 --> 00:16:18,560 Joissakin laskentaintensiivisiä koodi tehdä juttuja F osan, loput 328 00:16:18,560 --> 00:16:22,880 minun ohjelma ei voi suorittaa ja voi kuunnella uusia pyyntöjä tai mitään ennen kuin kaikki 329 00:16:22,880 --> 00:16:24,270 että tavaraa on valmis. 330 00:16:24,270 --> 00:16:27,390 Joten jos Kirjoitan Node koodi yleensä ellemme tee jotain aion 331 00:16:27,390 --> 00:16:33,060 ehdottaa myöhemmin, kun katsomme koodi esimerkkejä, minun täytyy olla varma, että 332 00:16:33,060 --> 00:16:36,060 minun koodi ei sido tämä tapahtuma silmukka. 333 00:16:36,060 --> 00:16:38,120 Onko järkeä? 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 >> Joten Node.js tarjoaa tässä yhteydessä, että voit rakentaa näitä ylläpitäjä 337 00:16:47,090 --> 00:16:48,210 palvelimia. 338 00:16:48,210 --> 00:16:53,460 Joten se on tällaisia ​​asynkronisten estoton I / O-kirjastot, kun taas 339 00:16:53,460 --> 00:16:56,800 vakio C kirjastot, että olemme olleet kanssa, kuten jos vain 340 00:16:56,800 --> 00:16:59,500 käyttää niitä samalla tavalla kuin olemme käyttänyt niitä f avautuu ja 341 00:16:59,500 --> 00:17:03,000 kamaa, nämä estävät, koska sinulla todella on odotettava 342 00:17:03,000 --> 00:17:04,470 että avattavan tiedoston. 343 00:17:04,470 --> 00:17:09,290 >> Mutta Node.js antaa sinulle ja se periaatteessa sitoo Googlen V8 344 00:17:09,290 --> 00:17:14,030 JavaScript-moottori, joka on syy että Chrome on niin nopea jalostusvaiheessa 345 00:17:14,030 --> 00:17:17,040 JavaScript koska se on tämä V8-moottori. 346 00:17:17,040 --> 00:17:22,460 Joten tiedän, että kuulostaa yksi niistä WWDC kehittäjä konferensseja asia 347 00:17:22,460 --> 00:17:25,390 jos ne vain heittää nippu kirjain numeron asioita prosessorit 348 00:17:25,390 --> 00:17:26,910 ja sanoa, tämä on niin cool. 349 00:17:26,910 --> 00:17:34,200 Mutta se on cool, että he tekivät Tässä koska JavaScript - 350 00:17:34,200 --> 00:17:37,010 tai ehkä jos et ole perehtynyt JavaScript vielä, koska meillä ei ole ollut 351 00:17:37,010 --> 00:17:38,180 luentoja sitä - 352 00:17:38,180 --> 00:17:40,770 mutta JavaScript on tulkittu kieltä. 353 00:17:40,770 --> 00:17:41,970 >> Ja tämä on tärkeä asia myös. 354 00:17:41,970 --> 00:17:45,790 Joten on tärkeää, meidän web palvelimet olla nopea, eikö? 355 00:17:45,790 --> 00:17:49,970 Ja jos olimme juuri käynnissä JavaScript koodi, joka oli tulkittu vain 356 00:17:49,970 --> 00:17:52,130 kaikki vanhat tulkki se saattaa olla hidasta. 357 00:17:52,130 --> 00:17:55,980 Joten Node hyötyy ottaa tämän huippunopea V8 tulkki. 358 00:17:55,980 --> 00:17:59,580 Ja en tiedä, jos he nimesivät sen koska V8 isku otsaan 359 00:17:59,580 --> 00:18:01,110 asia, mutta OK. 360 00:18:01,110 --> 00:18:07,070 >> Joten olen valmis joitakin esimerkkejä tässä URL-osoitteessa. 361 00:18:07,070 --> 00:18:10,490 Seminaarin jälkeen olen tavallaan menossa puhua siitä, miten voit saada Node asetettu 362 00:18:10,490 --> 00:18:13,570 ylös, mutta nyt olen vain eräänlainen haluavat kävellä läpi joitakin koodi esimerkkejä. 363 00:18:13,570 --> 00:18:17,250 Joten jos haluat seurata pitkin, kaikki lähdekoodi on saatavilla siellä. 364 00:18:17,250 --> 00:18:18,720 OK? 365 00:18:18,720 --> 00:18:22,280 >> Joten jätän tämän URL jopa hieman. 366 00:18:22,280 --> 00:18:24,440 Ja niin olen juuri menossa vaihda terminaaliin. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 Ovatko kaikki hyviä tämän URL? 369 00:18:34,400 --> 00:18:37,990 Joten aion siirtyä minun terminaalin täällä. 370 00:18:37,990 --> 00:18:42,030 >> Joten tässä on koodi, joka Minulla on tänään. 371 00:18:42,030 --> 00:18:43,960 Miksi emme aloita simpler.js tiedoston? 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 Toinen asia on, että kaikki tämän koodia aiotaan kirjoitettu 374 00:18:52,100 --> 00:18:56,660 JavaScript joka voi tai ei voi olla tuttu. 375 00:18:56,660 --> 00:19:00,170 Luulen pari asiaa on, että paljon JavaScript-koodi on eräänlainen 376 00:19:00,170 --> 00:19:04,000 syntaksi ja rakenne on hyvin samanlainen kuin C, joten voit sellainen hakea sen 377 00:19:04,000 --> 00:19:05,020 matkan varrella. 378 00:19:05,020 --> 00:19:08,750 Olen yrittänyt kirjoittaa paljon aloituskoodilla tämän tavalla, joka on 379 00:19:08,750 --> 00:19:11,230 samanlainen kuin C, niin että se on hieman luettavampi. 380 00:19:11,230 --> 00:19:15,980 Mutta kun etenemme, otan osoittaa joitakin ylimääräisiä 381 00:19:15,980 --> 00:19:18,980 piirteet JavaScriptiä ovat eräänlainen jäähtyä. 382 00:19:18,980 --> 00:19:21,510 >> Mutta katsotaanpa tämän otoksen ohjelma. 383 00:19:21,510 --> 00:19:24,820 Oletan kaikki on leikattu pois siellä. 384 00:19:24,820 --> 00:19:28,500 Olen juuri menossa korjata, että todellinen nopeasti, jos se on OK vai ei. 385 00:19:28,500 --> 00:19:31,400 En tiedä, mitä tämä aikoo tehdä. 386 00:19:31,400 --> 00:19:34,660 Onko se vähän paremmin? 387 00:19:34,660 --> 00:19:36,510 Näetkö var ja kamaa? 388 00:19:36,510 --> 00:19:39,320 OK. 389 00:19:39,320 --> 00:19:44,120 >> Joten ensimmäinen rivi on kuin JavaScript versio muuttujan 390 00:19:44,120 --> 00:19:44,800 julkilausumaan. 391 00:19:44,800 --> 00:19:49,870 Joten vain korostaa sitä, mitä tämä olisi näyttävät C. Joten tämä on aivan 392 00:19:49,870 --> 00:19:52,620 sanon indeksi on yhtä kuin kolme tai jotain sellaista. 393 00:19:52,620 --> 00:19:55,740 Joten en määritä tyyppiä. 394 00:19:55,740 --> 00:20:00,780 JavaScript ei ole tyyppejä, mutta se on erittäin dynaamisesti kirjoitetaan luonnossa, joten 395 00:20:00,780 --> 00:20:02,580 ei antanut minkäänlaista tyyppiä sitä. 396 00:20:02,580 --> 00:20:03,670 Niin se vain on var. 397 00:20:03,670 --> 00:20:05,320 Se on kuin muuttuja. 398 00:20:05,320 --> 00:20:05,920 OK? 399 00:20:05,920 --> 00:20:08,340 >> Ja Soitan tämän muuttujan HTTP. 400 00:20:08,340 --> 00:20:12,480 Ja minun oikealla puolella, minulla on lauseke, että haluan laittaa HTTP. 401 00:20:12,480 --> 00:20:14,960 Ja tämä kertoo vaativat HTTP. 402 00:20:14,960 --> 00:20:18,500 Joten tämä on tavallaan samanlainen kuuluu. 403 00:20:18,500 --> 00:20:22,940 Se on vähän enemmän kuin voimakas kuin sisällyttää siinä mielessä, että sisältävät 404 00:20:22,940 --> 00:20:26,100 olisi vain kopioida ja liittää header tiedosto toiminto prototyyppejä tai 405 00:20:26,100 --> 00:20:27,930 riippumatta tyypin määritelmiä. 406 00:20:27,930 --> 00:20:30,590 Mutta ne vaativat todella tapahtuu saada meidät koodi. 407 00:20:30,590 --> 00:20:33,280 >> Joten voit ajatella sitä tuo joidenkin koodi. 408 00:20:33,280 --> 00:20:37,960 Joten jossain Node.js moduulin järjestelmän tai mitä tahansa, he ovat kaikki tämän 409 00:20:37,960 --> 00:20:40,790 HTTP-palvelin koodia niin olen vain hakemalla sen itseni 410 00:20:40,790 --> 00:20:43,130 henkilökohtaiseen käyttöön tässä ohjelmassa. 411 00:20:43,130 --> 00:20:44,260 OK? 412 00:20:44,260 --> 00:20:46,930 >> Niin sitten minulla on tämä toiminto että olen kirjoittanut. 413 00:20:46,930 --> 00:20:50,330 Ja huomaa etten tarvitse määrittää palautuva tai tyyppi 414 00:20:50,330 --> 00:20:51,140 argumentteja uudelleen. 415 00:20:51,140 --> 00:20:54,440 Joten sellainen löysä kirjoitetaan sellaista tunnetta. 416 00:20:54,440 --> 00:20:57,290 Kaksi väitettä, joita se toteuttaa, pyyntö ja vastaus. 417 00:20:57,290 --> 00:21:02,080 Niin, että käsitteellisesti sellainen kuin tuttu kuva, että meillä oli 418 00:21:02,080 --> 00:21:05,280 ruudulla ennen, koska saamme tämän pyynnön, että me 419 00:21:05,280 --> 00:21:06,410 on käyttäjän. 420 00:21:06,410 --> 00:21:09,170 Ja sitten meillä on vastaus, joka voimme kirjoittaa asioita. 421 00:21:09,170 --> 00:21:15,060 >> Joten ensimmäinen rivi tämä ei res.writeHead 200, ja sitten tämä 422 00:21:15,060 --> 00:21:17,070 sisältöä kirjoittaa tekstiä tavallista. 423 00:21:17,070 --> 00:21:19,300 Joten piece hieman erilleen toisistaan. 424 00:21:19,300 --> 00:21:22,340 Joten haluan vain keskittyä res.write vähän. 425 00:21:22,340 --> 00:21:28,420 Joten kirjoitus on pohjimmiltaan, ja kirjoituspää, ovat vain tapoja tavallaan kirjoittaa 426 00:21:28,420 --> 00:21:29,960 asioita vastausta. 427 00:21:29,960 --> 00:21:30,770 OK? 428 00:21:30,770 --> 00:21:36,230 Joten kirjoituspää, jos joku muistaa HTTP-luento, oletteko kaverit 429 00:21:36,230 --> 00:21:39,940 Muistan otsikot päälle HTTP asia? 430 00:21:39,940 --> 00:21:43,580 Joten miksi en vain demo otsikot todella nopeasti. 431 00:21:43,580 --> 00:21:44,640 Olisiko se hyödyllistä? 432 00:21:44,640 --> 00:21:45,500 Vai pitäisikö vain eräänlainen - 433 00:21:45,500 --> 00:21:46,070 OK. 434 00:21:46,070 --> 00:21:46,740 Toki. 435 00:21:46,740 --> 00:21:52,340 >> Joten kun selain menee google.com tai jotain, 436 00:21:52,340 --> 00:21:54,250 siellä on todella vähän enemmän - 437 00:21:54,250 --> 00:21:55,380 tämä on kuin salaisuus - 438 00:21:55,380 --> 00:21:58,340 siellä on kuin pieni lisätietoa joka tulee putken läpi kuin vain 439 00:21:58,340 --> 00:22:00,180 pikku etsintä ja kaikkea. 440 00:22:00,180 --> 00:22:03,550 Joten näyttää sinulle tämän, aion käyttää ohjelmaa nimeltä Curl. 441 00:22:03,550 --> 00:22:04,260 OK? 442 00:22:04,260 --> 00:22:08,020 Joten tämä on jotain, voit ajaa Mac OSX komentoriviltä tai 443 00:22:08,020 --> 00:22:09,830 laitteen tai mitä tahansa. 444 00:22:09,830 --> 00:22:17,050 Ja niin jos en Curl HTTP google.com, Aion nähdä HTML. 445 00:22:17,050 --> 00:22:21,230 Ja tämä on, oikeudenmukaisuus, vain HTML tuollainen käskee 446 00:22:21,230 --> 00:22:24,695 ohjata www, jos selain ei automaattisesti kahva 447 00:22:24,695 --> 00:22:27,110 uudelleenohjaus. 448 00:22:27,110 --> 00:22:33,390 >> Joten tämä on vain HTML, mutta aion lisätä Curl tämän väliviivaa I lippu. 449 00:22:33,390 --> 00:22:33,600 OK? 450 00:22:33,600 --> 00:22:35,600 Ja tämä on menossa näyttämään minulle otsikot. 451 00:22:35,600 --> 00:22:40,640 Joten tämä on myös tietoa, joka tulee läpi, kun saan tämän vastauksen. 452 00:22:40,640 --> 00:22:41,260 OK? 453 00:22:41,260 --> 00:22:45,320 >> Joten yläreunassa, näet tämän HTTP 301 muuttaa pysyvästi. 454 00:22:45,320 --> 00:22:49,470 Ja tämä on tavallaan tärkeä, koska Tämä viittaa tilakoodi. 455 00:22:49,470 --> 00:22:53,750 Joten 301 tässä tilakoodin, joka on pohjimmiltaan vain kokonaisluku 456 00:22:53,750 --> 00:22:57,750 joka kertoo selaimen tai kuka on luet tätä, jos teeskennellä, että 457 00:22:57,750 --> 00:23:01,460 olet selaimen ja te näette tämän, periaatteessa nyt jos tarkastellaan 458 00:23:01,460 --> 00:23:04,960 että ja näet 301, tiedät minulla on tehdä jotain erityistä, joka perustuu 459 00:23:04,960 --> 00:23:08,810 301, tai jotain erityistä tapahtui perustuu 301. 460 00:23:08,810 --> 00:23:12,640 Niin se sanoo muutti pysyvästi. 461 00:23:12,640 --> 00:23:17,700 >> Ja sitten, pohjimmiltaan olemme joukko keskeisiä arvo-pareja. 462 00:23:17,700 --> 00:23:22,100 Joten saamme sijainti on www.google.com. 463 00:23:22,100 --> 00:23:25,190 Ja sitten tavallaan kaikki tämä muita juttuja, mutta pohjimmiltaan, mikä paikka on 464 00:23:25,190 --> 00:23:29,662 sanonta on uusi paikka on osoitteessa www.google.com. 465 00:23:29,662 --> 00:23:33,800 Joten nyt jos menet google.com, sinun tavallaan nähdä selaimen sellainen vilkkuvat 466 00:23:33,800 --> 00:23:38,770 toista ja sitten ohjata sinut oikeus takaisin www.google.com. 467 00:23:38,770 --> 00:23:41,840 Joten vastauksia voi sisältää nämä otsikot. 468 00:23:41,840 --> 00:23:43,330 >> Ja pari asiaa huomauttaa. 469 00:23:43,330 --> 00:23:46,890 Joten sanokaamme olimme todella onnistuneita luona Web-sivun. 470 00:23:46,890 --> 00:23:49,040 Joten anna minun mennä - 471 00:23:49,040 --> 00:23:51,080 mikä on hyvä sivusto? 472 00:23:51,080 --> 00:23:53,285 Olen huono ajattelu hyviä sivustot paikan päällä. 473 00:23:53,285 --> 00:23:53,640 >> Yleisö: Wikipedia. 474 00:23:53,640 --> 00:23:54,160 >> KEVIN SCHMID: OK. 475 00:23:54,160 --> 00:23:56,040 Tehdään Wikipedia. 476 00:23:56,040 --> 00:23:58,680 Joten tässä olin muuttanut. 477 00:23:58,680 --> 00:23:59,240 Voi odottaa. 478 00:23:59,240 --> 00:24:00,160 Olinko? 479 00:24:00,160 --> 00:24:00,890 Kyllä, olin. 480 00:24:00,890 --> 00:24:01,100 OK. 481 00:24:01,100 --> 00:24:03,005 Joten sain tehdä www. 482 00:24:03,005 --> 00:24:06,006 Joten aion tehdä www. 483 00:24:06,006 --> 00:24:09,680 Ja kuten näette, tässä on kaikki HTML että selain käsittelisi 484 00:24:09,680 --> 00:24:10,910 Wikipedia. 485 00:24:10,910 --> 00:24:14,055 >> Mutta jos pidän vieritys tänne, mitä Nähdään huipulla - 486 00:24:14,055 --> 00:24:17,800 wow, siellä on paljon HTML on Wikipedia - 487 00:24:17,800 --> 00:24:22,550 mutta mitä näen yläreunassa tässä Tämän 200 tilakoodin vastakohtana 488 00:24:22,550 --> 00:24:24,570 301, että olen nähnyt aikaisemmin. 489 00:24:24,570 --> 00:24:27,100 Ja huomaa, että se on kiva ystävällinen OK sen vieressä. 490 00:24:27,100 --> 00:24:29,470 Joten tämä on kuin hyvä tila koodia. 491 00:24:29,470 --> 00:24:31,160 >> Tarkoittaako tämä 200 numero tutulta? 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 Kyllä sillä kun tein simpler.js, Kirjoitin 200 siellä. 494 00:24:39,880 --> 00:24:43,290 Niin, että on pohjimmiltaan sanomalla kertoa selain tai kuka yrittää päästä 495 00:24:43,290 --> 00:24:45,440 tämä, että he onnistuivat. 496 00:24:45,440 --> 00:24:49,040 Tai että ikään kuin me menestyivät myös. 497 00:24:49,040 --> 00:24:54,320 >> Ja siellä on tällaista erityistä syntaksia Javascript julistamisesta 498 00:24:54,320 --> 00:24:59,870 kartta näistä näppäimistä, kuten sisällön tyyppi ja nämä arvot, kuten tekstiä plain. 499 00:24:59,870 --> 00:25:03,780 Joten jos tarkastellaan vastauksen, että me Saavuimme Wikipedia ennen, - 500 00:25:03,780 --> 00:25:06,200 Aion yrittää vierittää jopa hieman nopeammin - 501 00:25:06,200 --> 00:25:09,900 sinulla on nämä avaimet, kuten palvelin ja nämä arvot Apache. 502 00:25:09,900 --> 00:25:12,120 Joten sinulla avaimia ja arvoja. 503 00:25:12,120 --> 00:25:15,930 Ja voit määrittää tämän Solmuun mitä lähettää takaisin. 504 00:25:15,930 --> 00:25:19,380 >> Joten tämä on oikeastaan ​​aika joissakin tavoilla, ja tietyllä tavalla se ei ole 505 00:25:19,380 --> 00:25:23,170 todella, mutta se on hieman alemmalla tasolla kuin PHP-koodin että saatat olla 506 00:25:23,170 --> 00:25:26,980 kirjallisesti P asettaa seitsemän, koska PHP ja Apache tavallaan huolehtia joidenkin 507 00:25:26,980 --> 00:25:28,150 nämä asiat sinulle. 508 00:25:28,150 --> 00:25:32,520 PHP, voit ohittaa oletuksena käyttäytymistä kirjoittamalla omia otsikot. 509 00:25:32,520 --> 00:25:35,520 Mutta tämän, saamme kirjoittaa ulos oman otsikot. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> Joten tuo linja järkevää kaikki, kirjoituspää linja? 512 00:25:41,105 --> 00:25:41,380 OK. 513 00:25:41,380 --> 00:25:42,280 Mahtava. 514 00:25:42,280 --> 00:25:45,870 >> Joten sitten mitä teen, on lopettaa vastaus sanomalla hello world. 515 00:25:45,870 --> 00:25:47,040 OK. 516 00:25:47,040 --> 00:25:49,920 Mutta se on vain toiminto nimeltään pyynnön käsittelijä. 517 00:25:49,920 --> 00:25:53,510 Joten nyt olen oikeastaan ​​tarvitse sellaista tehdä jotain tätä toimintoa, eikö? 518 00:25:53,510 --> 00:25:59,170 >> Joten tässä mitä teen on on tämä linjaa, joka ei var-palvelin tasavertaisina 519 00:25:59,170 --> 00:26:03,530 HTTP.create palvelin, ja sitten minä kulkea pyynnön käsittelijä. 520 00:26:03,530 --> 00:26:06,080 Joten tämä on tavallaan Node tapa luoda palvelimelle. 521 00:26:06,080 --> 00:26:08,790 Ja huomaa, että olen ohimennen pyynnössä käsittelijä. 522 00:26:08,790 --> 00:26:12,290 Joten tämä kertoo createServer toiminto, jonka haluan sinun tehdä minulle 523 00:26:12,290 --> 00:26:16,270 palvelin, ja kun tuo palvelin vastaanottaa vastaus, tarvitsen sinua kutsua tätä 524 00:26:16,270 --> 00:26:18,680 Pyyntökäsittely toiminto. 525 00:26:18,680 --> 00:26:18,990 OK? 526 00:26:18,990 --> 00:26:22,290 >> Niin että viiva aika paljon päättyy heti. 527 00:26:22,290 --> 00:26:28,780 Joten var-palvelin linja on tehty oikein kun tehdään, että melko paljon. 528 00:26:28,780 --> 00:26:31,770 Tarkoitan, se on perustettu joitakin sisäisiä valtio tietää, että sinulla olisi 529 00:26:31,770 --> 00:26:35,400 soittaa, että pyynnön käsittelijä toiminto, mutta se ei tule istua siellä ja 530 00:26:35,400 --> 00:26:37,730 sananvaltaa on käyttäjän lähetettävä minulle pyynnön vielä? 531 00:26:37,730 --> 00:26:39,270 On käyttäjä lähetti minulle pyynnön vielä? 532 00:26:39,270 --> 00:26:40,780 Joten se ei estä. 533 00:26:40,780 --> 00:26:41,650 OK? 534 00:26:41,650 --> 00:26:46,120 >> Joten mitä tämä tekee on se pohjimmiltaan nyt tallentaa osoitin tämän koodin, 535 00:26:46,120 --> 00:26:49,670 Tämän pyynnön käsittelijä toiminnon kohdalle ja valitse ajaa kyseisen koodin kun joku 536 00:26:49,670 --> 00:26:52,170 tekee pyynnöstä. 537 00:26:52,170 --> 00:26:54,120 Ja sitten teemme server.listen. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> 1337 on melko mielivaltainen. 540 00:26:59,960 --> 00:27:02,285 Minulla ei ollut mitään erityistä syytä poiminta että numero. 541 00:27:02,285 --> 00:27:03,860 Se oli täysin sattumanvaraisesti. 542 00:27:03,860 --> 00:27:07,010 Mutta se vain määrittää portin. 543 00:27:07,010 --> 00:27:10,640 Joten useimmat web-palvelimet näet, että he käyttää porttia 80, koska se on eräänlainen 544 00:27:10,640 --> 00:27:11,810 samankaltaisten sopimusta. 545 00:27:11,810 --> 00:27:16,170 Joten jos menen jotain, En tiedä, Wikipedia.org, 546 00:27:16,170 --> 00:27:17,700 ja laitoin paksusuolen 8 - 547 00:27:17,700 --> 00:27:18,610 Oh wow, et näe sitä. 548 00:27:18,610 --> 00:27:19,370 Olen pahoillani. 549 00:27:19,370 --> 00:27:21,820 Mutta jos teen Wikipedia - 550 00:27:21,820 --> 00:27:24,810 Kirjoitan sen tänne vain niin, että se on selvää kameran. 551 00:27:24,810 --> 00:27:29,150 Mutta jos otan tämän huomioon selaimen paksusuolen 80, joka määrittää mennä 552 00:27:29,150 --> 00:27:31,430 Wikipedia.org satamassa 80. 553 00:27:31,430 --> 00:27:36,200 Joten se on kuin miten Yhdysvallat on useita portteja kuten missä voit postittaa 554 00:27:36,200 --> 00:27:37,440 asioita tavallaan. 555 00:27:37,440 --> 00:27:40,730 Joten se on kuin mennä tässä aseta tällä palvelimella. 556 00:27:40,730 --> 00:27:40,990 OK. 557 00:27:40,990 --> 00:27:45,730 >> Joten en juuri valitsi 1337. 558 00:27:45,730 --> 00:27:47,910 On koko joukko numeroita että voit poimia. 559 00:27:47,910 --> 00:27:50,390 Se ei ollut aivan erityinen. 560 00:27:50,390 --> 00:27:54,560 >> Mutta mitä aion tehdä nyt on Aion juosta Node. 561 00:27:54,560 --> 00:27:59,730 Saanen itse kirjoittaa, että pari linjat alas niin, että voit nähdä sen. 562 00:27:59,730 --> 00:28:03,130 Aion tehdä Node, ja olen menossa ajaa simpler.js. 563 00:28:03,130 --> 00:28:06,880 Ja me puhumme siitä, miten saada Solmun perustettiin vuonna hieman. 564 00:28:06,880 --> 00:28:09,350 Mutta nyt se on juuri käynnissä palvelimessa. 565 00:28:09,350 --> 00:28:14,360 >> Joten yksi asia, mitä voimme yrittää, jotka eivät saa olla, että jännittävä on todella voimme 566 00:28:14,360 --> 00:28:16,300 yrität käyttää sitä Curl. 567 00:28:16,300 --> 00:28:20,680 Joten en voi tehdä Curl, ja minun kone on paikallinen isäntä. 568 00:28:20,680 --> 00:28:24,600 Näet myös tämän kirjallisen näin joskus. 569 00:28:24,600 --> 00:28:29,810 Paikallinen isäntä ja 127.0.0.1 ovat ystävällisiä samankaltaisten kotikoneelta. 570 00:28:29,810 --> 00:28:33,180 Joten se on kuin puhuisi oma tietokone. 571 00:28:33,180 --> 00:28:33,760 OK. 572 00:28:33,760 --> 00:28:36,030 >> Ja sitten voin sanoa 1337. 573 00:28:36,030 --> 00:28:39,630 Joten jos juoksen tämän Koodirivin se sanoo hello world. 574 00:28:39,630 --> 00:28:44,050 Ja jos halusin nähdä, että tavaraa, joka oli sisältöä kirjoittaa tekstiä tavallista tai 575 00:28:44,050 --> 00:28:46,560 mitä voisin jopa laittaa tämän tänne. 576 00:28:46,560 --> 00:28:48,810 Ja huomaa, että se ei sano OK. 577 00:28:48,810 --> 00:28:50,810 Ja minulla on tekstiä plain. 578 00:28:50,810 --> 00:28:53,140 Ja sitten on eräänlainen kaikkien näiden muiden tavaraa, että solmu lisätä 579 00:28:53,140 --> 00:28:54,440 siellä minua. 580 00:28:54,440 --> 00:28:55,700 Se ei ole Super tärkeää. 581 00:28:55,700 --> 00:28:58,230 >> Tarkoitan, on olemassa jonkinlainen teknisiä näkökohtia tuohon ovat ystävällisiä 582 00:28:58,230 --> 00:29:02,280 viileä puhua, mutta vain näyttää te, minulla on myös valta 583 00:29:02,280 --> 00:29:03,070 muuttaa näitä ympärillä. 584 00:29:03,070 --> 00:29:06,280 Joten voin vain lisätä nippu ja muuta vastaavaa. 585 00:29:06,280 --> 00:29:11,780 Ja sitten nyt, jos katson minun lähtö, se on, että. 586 00:29:11,780 --> 00:29:19,740 Joten nämä otsikot tarkoittaa tiettyjä asioita selaimille ja tuollaista. 587 00:29:19,740 --> 00:29:23,040 >> Ja otsikot voi periaatteessa kertoa selaimen miten vastata jotain. 588 00:29:23,040 --> 00:29:26,280 Jos olet koskaan kuullut evästeet ennen, tai jos olet joskus ollut harmissaan 589 00:29:26,280 --> 00:29:29,330 jonka web-sivun, jossa evästeet, tai päällä evästeen estää tai 590 00:29:29,330 --> 00:29:30,320 jotain sellaista. 591 00:29:30,320 --> 00:29:33,040 Voit itse asettaa evästeitä Näissä otsikot. 592 00:29:33,040 --> 00:29:36,990 Joten he kertovat selaimen miten käyttäytymisen joissakin tapauksissa. 593 00:29:36,990 --> 00:29:37,750 OK. 594 00:29:37,750 --> 00:29:40,310 >> Niin että oli simpler.js. 595 00:29:40,310 --> 00:29:42,780 Onko kellään mitään kysyttävää siitä, että lähdekoodi tiedosto? 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 >> Joten poista r kyseisestä ja katso simple.js. 600 00:29:50,780 --> 00:29:53,010 Joten tämä on melko paljon samaa ohjelmaa. 601 00:29:53,010 --> 00:29:56,030 Minä vain kirjoitti sen hieman eri tavalla koska halusin lajitella kohokohta 602 00:29:56,030 --> 00:29:57,850 joitakin piirteitä JavaScript. 603 00:29:57,850 --> 00:30:03,880 >> Niin huomaa, että pyynnön käsittelijä toiminta on täysin kadonnut. 604 00:30:03,880 --> 00:30:05,800 Ai juu, oliko sinulla kysymys? 605 00:30:05,800 --> 00:30:08,200 >> Yleisö: Joo, perustelut että johdetaan, että 606 00:30:08,200 --> 00:30:10,120 toiminto, mitä ne ovat? 607 00:30:10,120 --> 00:30:12,050 >> KEVIN SCHMID: Joten ne ovat JavaScript esineitä. 608 00:30:12,050 --> 00:30:15,230 Vuonna Node.js asiakirjoihin, pohjimmiltaan sanoo mitä menetelmiä ovat 609 00:30:15,230 --> 00:30:15,910 saatavilla niitä. 610 00:30:15,910 --> 00:30:19,602 Me vain sattuu olemaan pääsy tätä menetelmää kutsutaan kirjoituspää ja lopussa 611 00:30:19,602 --> 00:30:20,730 ja muuta vastaavaa. 612 00:30:20,730 --> 00:30:22,590 Mutta on koko joukko enemmän menetelmiä. 613 00:30:22,590 --> 00:30:27,670 >> Ja esimerkiksi kuten yksi heistä erityisesti rec, voit tehdä 614 00:30:27,670 --> 00:30:34,540 jotain rec.method joka kertoa, onko se HTTP saada tai 615 00:30:34,540 --> 00:30:36,780 HTTP POST-pyyntöjä ja tuollaista. 616 00:30:36,780 --> 00:30:39,100 Joten siellä on kaikenlaisia ​​erilaisia ominaisuuksia, mutta he molemmat 617 00:30:39,100 --> 00:30:42,560 JavaScript esineitä, ja ne on vain toiminnot liitetään heille, että olet 618 00:30:42,560 --> 00:30:43,850 voi kirjoittaa asioita. 619 00:30:43,850 --> 00:30:45,520 OK? 620 00:30:45,520 --> 00:30:49,030 >> Niin huomaa, että pyynnön käsittelijä on täysin poissa. 621 00:30:49,030 --> 00:30:52,650 Mutta koodi, joka minulla oli pyyntö käsittelijä on edelleen olemassa. 622 00:30:52,650 --> 00:30:56,520 Minulla on vielä tämä res.writeHead ja minulla on vielä tätä res.end. 623 00:30:56,520 --> 00:31:00,270 Ja mitä tämä on esimerkki vuonna JavaScript on ajatusta 624 00:31:00,270 --> 00:31:01,460 Nimetön toiminto. 625 00:31:01,460 --> 00:31:04,180 ja nimetön on kuin sopiva nimi sitä, koska se kirjaimellisesti ei 626 00:31:04,180 --> 00:31:05,180 ole nimeä. 627 00:31:05,180 --> 00:31:07,900 Ei ole toimintoa pyyntöä käsittelijä siellä. 628 00:31:07,900 --> 00:31:10,110 >> Ei ole nimeä, mutta se on edelleen on ottaa argumentti. 629 00:31:10,110 --> 00:31:12,250 Joten en silti saanut rec ja res. 630 00:31:12,250 --> 00:31:16,180 Ja minulla on vielä koodia. 631 00:31:16,180 --> 00:31:18,930 Tämä on täysin kunnossa JavaScript-koodia. 632 00:31:18,930 --> 00:31:22,540 Joten en voi julistaa toiminnosta nimenomaisesti antaa sille nimi. 633 00:31:22,540 --> 00:31:24,250 Se on vähän sekava aluksi. 634 00:31:24,250 --> 00:31:26,230 On joitakin, kuten hyödyllisiä asioita että voit tehdä 635 00:31:26,230 --> 00:31:28,450 näitä nimettömiä toimintoja. 636 00:31:28,450 --> 00:31:32,100 Onko kellään mitään kysyttävää tästä, vai onko se ok vain, nyt, 637 00:31:32,100 --> 00:31:34,130 tavallaan vain hyväksyä, että se tulee tehdä sama asia? 638 00:31:34,130 --> 00:31:36,700 639 00:31:36,700 --> 00:31:37,125 Jep? 640 00:31:37,125 --> 00:31:38,680 >> Yleisö: Ovatko toiminnot ensin luokan JavaScript? 641 00:31:38,680 --> 00:31:41,020 >> KEVIN SCHMID: He ovat ensin luokan JavaScript. 642 00:31:41,020 --> 00:31:45,490 Ja juuri tietää, että nämä käsitteet ohimennen Nimetön toiminto, kuten 643 00:31:45,490 --> 00:31:49,600 tätä sovelletaan JavaScriptiä sinua voi kirjoittaa lopulliseen hanke 644 00:31:49,600 --> 00:31:51,260 Web-selain myös. 645 00:31:51,260 --> 00:31:56,700 Joten esimerkiksi Javascriptin selaimen, se on myös jonkin verran tapahtuma 646 00:31:56,700 --> 00:32:00,680 ajetaan siinä mielessä, että mitä sinun on on, kun käyttäjä napsauttaa tämän 647 00:32:00,680 --> 00:32:02,640 painiketta, haluan sinun suorittaa tämän koodin. 648 00:32:02,640 --> 00:32:07,070 >> Joten se on samanlaista ajatuksia asiakkaan puolella, kun hiiren napsautuksella tai ne 649 00:32:07,070 --> 00:32:09,870 hiiri joitakin kuvan omalle Web-sivu, suorittaa tämän koodin. 650 00:32:09,870 --> 00:32:11,350 Joita voidaan soveltaa palvelimia. 651 00:32:11,350 --> 00:32:16,380 Niin, että on ikään kuin jännittävä Syy miksi JavaScript on todella 652 00:32:16,380 --> 00:32:19,810 sopivia tai jotkut ihmiset ajattelevat, että soveltuvat kieli tällaiselle 653 00:32:19,810 --> 00:32:22,530 Jos kuljettaja palvelin, koska olet näitä nimettömiä toimintoja. 654 00:32:22,530 --> 00:32:26,150 Sinulla on koko ajatus Tämän asynkroninen koodi. 655 00:32:26,150 --> 00:32:27,060 OK. 656 00:32:27,060 --> 00:32:30,360 Kellään mitään kysyttävää? 657 00:32:30,360 --> 00:32:30,470 >> OK. 658 00:32:30,470 --> 00:32:33,440 Niin että oli simple.js. 659 00:32:33,440 --> 00:32:38,070 Joten katsokaamme yksi tai pari enemmän. 660 00:32:38,070 --> 00:32:42,040 Joten tämä on sleep.js. 661 00:32:42,040 --> 00:32:47,160 Joten on joku tuttu C toiminto nukkua? 662 00:32:47,160 --> 00:32:50,936 Alkaen ehkä yksi aikaisempi luentoja tai jotain? 663 00:32:50,936 --> 00:32:54,650 >> Joten periaatteessa voit kulkea mielestäni sekuntien tai jos käytät U 664 00:32:54,650 --> 00:32:57,080 nukkua millisekuntien määrän tai nanosekuntia. 665 00:32:57,080 --> 00:33:00,450 Ja pohjimmiltaan ohjelma vain lopettaa käynnissä että aikaa. 666 00:33:00,450 --> 00:33:01,280 Oikea? 667 00:33:01,280 --> 00:33:06,970 Ja sitten se herää lopulta ja niin se tulee vain edelleen käynnissä 668 00:33:06,970 --> 00:33:08,340 ohjelma. 669 00:33:08,340 --> 00:33:12,740 >> Joten tämä palvelin tavallaan antaa vaikutelman nukkumassa. 670 00:33:12,740 --> 00:33:17,580 Niin huomaa, että meillä on sama res.writeHead 200 kanssa myös otsikon 671 00:33:17,580 --> 00:33:22,130 ennen, mutta sitten olemme kutsuneet tätä toiminto nimeltään set timeout. 672 00:33:22,130 --> 00:33:26,170 Aseta aikaraja on saatavilla myös selaimessasi Google Chrome 673 00:33:26,170 --> 00:33:28,000 tai Safari tai mitä tahansa. 674 00:33:28,000 --> 00:33:31,720 Ja periaatteessa mitä se tekee täällä on se ryhtyy toiminto. 675 00:33:31,720 --> 00:33:33,360 Ilmoitusta, jälleen, se on Nimetön toiminto. 676 00:33:33,360 --> 00:33:36,310 Niin, että aika siistiä, koska olemme käyttäen anonyymi toimintoa 677 00:33:36,310 --> 00:33:38,950 Nimetön toiminto, joka voi olla vähän outo. 678 00:33:38,950 --> 00:33:42,270 >> Mutta se kestää, että toiminto, joka on pohjimmiltaan sanovat - ja miten tämä 679 00:33:42,270 --> 00:33:47,430 työt on 5000 millisekuntia, haluan voit suorittaa tämän tehtävän, joka 680 00:33:47,430 --> 00:33:50,830 vain päättyy vasteen ja kirjoittaa hei. 681 00:33:50,830 --> 00:33:56,730 Joten tämä antaa vaikutelman kuin nukkuminen, mutta miten tämä todellisuudessa 682 00:33:56,730 --> 00:33:59,780 toimii, me läpi tämän linjan hyvin nopeasti. 683 00:33:59,780 --> 00:34:01,190 Me vain kirjoittaa jotain. 684 00:34:01,190 --> 00:34:03,780 Ja sitten me myös ajaa läpi tämän linjan hyvin nopeasti. 685 00:34:03,780 --> 00:34:08,620 Joten emme todella menossa odottamaan viisi sekuntia. 686 00:34:08,620 --> 00:34:11,370 Olemme juuri menossa ajaa Tämän koodin heti. 687 00:34:11,370 --> 00:34:14,219 >> Ja sitten on taas tämä pieni Jos silmukka, joka on nyt tämä asia 688 00:34:14,219 --> 00:34:17,570 rekistereitä, että pohjimmiltaan on vain jatkuvasti menossa ympyrää 689 00:34:17,570 --> 00:34:21,620 ja katsot kelloa yhdessä lanka ja sanonta, on viisi sekuntia 690 00:34:21,620 --> 00:34:22,360 kulunut vielä? 691 00:34:22,360 --> 00:34:26,409 Ja sitten kun se näkee, että toinen käsi on siirtynyt kuten viisi sekuntia 692 00:34:26,409 --> 00:34:29,190 mitä tahansa, niin se herää ja sanoo, Voi, mitä minun täytyy tehdä? 693 00:34:29,190 --> 00:34:30,350 Voi pitää juosta tämän koodin. 694 00:34:30,350 --> 00:34:33,110 Ja sitten se tulee ajaa res.end hei. 695 00:34:33,110 --> 00:34:35,360 >> Joten jälleen, että me emme koskaan täällä odottaa. 696 00:34:35,360 --> 00:34:38,590 Joten se ei ole, että tätä koodia sisällä tämä toiminto vie viisi 697 00:34:38,590 --> 00:34:39,900 sekuntia juosta. 698 00:34:39,900 --> 00:34:43,090 Tämä koodi toimii melko paljon välittömästi, ainakin suhteessa 699 00:34:43,090 --> 00:34:46,139 viiden sekunnin että puhuimme noin aikaisemmin ennen. 700 00:34:46,139 --> 00:34:52,100 >> Joten vain osoittaa tähän toimintoon Voin tehdä Node.sleep.js. 701 00:34:52,100 --> 00:34:55,159 Ja tein sotkea jotain? 702 00:34:55,159 --> 00:34:56,310 Mahdollisesti. 703 00:34:56,310 --> 00:34:57,410 Anteeksi. 704 00:34:57,410 --> 00:34:59,530 Katsotaan, mitä voimme tehdä tilanteen korjaamiseksi. 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 Joten ehdottomasti käyttää Node.js. 709 00:35:17,464 --> 00:35:19,440 Olen vain leikkiä. 710 00:35:19,440 --> 00:35:19,570 OK. 711 00:35:19,570 --> 00:35:20,820 Vain yksi sek. 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 En tiedä mitä se on. 715 00:35:29,130 --> 00:35:34,440 >> Joten kysymys on, että minun toinen välilehti Täältä Juoksin Node jo 716 00:35:34,440 --> 00:35:36,590 että samassa osoitteessa, 1337. 717 00:35:36,590 --> 00:35:43,370 Niin virhe, että tämä heitti, jos katsomme sitä todellista tarkasti, on osoite 718 00:35:43,370 --> 00:35:45,180 käyttää, EADDRINUSE. 719 00:35:45,180 --> 00:35:47,970 Joten olin jo käytössä 1337 täällä. 720 00:35:47,970 --> 00:35:52,210 Joten jos suljen tämän pois, ja sitten minä nyt yrittää ajaa tätä, toivottavasti kaikki 721 00:35:52,210 --> 00:35:53,210 on hieno. 722 00:35:53,210 --> 00:35:53,440 OK. 723 00:35:53,440 --> 00:35:57,020 Joten sinulla voi olla vain yksi asia tavallaan kuunnella portissa kerralla. 724 00:35:57,020 --> 00:35:59,660 Toinen ratkaisu olisi ollut minulle vain muokata kyseisen ohjelman ja tehdä 725 00:35:59,660 --> 00:36:02,370 se on kuin 1338 tai jotain niin. 726 00:36:02,370 --> 00:36:04,100 >> Mutta nyt nukkumaan käydessä. 727 00:36:04,100 --> 00:36:06,400 Joten itse kokeilla sitä selain tällä hetkellä, koska se on 728 00:36:06,400 --> 00:36:09,080 pikku unexciting nähdä se terminaali. 729 00:36:09,080 --> 00:36:13,560 Joten olen juuri menossa mennä, että 127 osoitetta uudelleen 1337. 730 00:36:13,560 --> 00:36:14,850 Ja jos näet sen - 731 00:36:14,850 --> 00:36:18,050 En tiedä, jos voit - mutta minun selaimen ottaen hyvin, hyvin pitkä 732 00:36:18,050 --> 00:36:20,600 aikaa ladata tai kuten viisi sekuntia. 733 00:36:20,600 --> 00:36:23,460 >> Ja sitten sen jälkeen, että se lopulta päättyi vastausta. 734 00:36:23,460 --> 00:36:29,070 Ja et näe sitä, koska asia liikutetaan vähän, mutta jos teen 735 00:36:29,070 --> 00:36:32,500 Tässä hieman pienempi, voit voi nähdä se sanoo hei. 736 00:36:32,500 --> 00:36:35,130 Joten sain hei, mutta viiden sekunnin kuluttua. 737 00:36:35,130 --> 00:36:38,510 Ja se voisi olla hieman puhtaampi nähdä se täällä terminaali, joten olen 738 00:36:38,510 --> 00:36:40,980 aikoo tehdä - 739 00:36:40,980 --> 00:36:43,540 Tehdään tänne - 740 00:36:43,540 --> 00:36:48,370 Tehdään Curl osoitteeseen jälleen 1337. 741 00:36:48,370 --> 00:36:50,820 Ja minä vain sellaista tarvitse istua täällä viisi sekuntia. 742 00:36:50,820 --> 00:36:53,760 Mutta huomaa, että palvelin voi hyväksyä uusia ratkaisuja. 743 00:36:53,760 --> 00:36:54,940 Niin se tulostaa hei. 744 00:36:54,940 --> 00:36:58,720 >> Ja demo tämän, pohjimmiltaan Voin tehdä tässä toisessa välilehdessä - 745 00:36:58,720 --> 00:37:02,640 joten haluan sanoa, että en tässä toisessa välilehdessä Aion tehdä Curl ja sama 746 00:37:02,640 --> 00:37:03,780 asia uudelleen. 747 00:37:03,780 --> 00:37:06,600 Ja aion yrittää potkia näitä tyyppejä pois samaan aikaan. 748 00:37:06,600 --> 00:37:08,260 Joten aion tehdä tämän, ja olen menossa kilpaa tänne ja olen 749 00:37:08,260 --> 00:37:09,650 aio tehdä sitä uudestaan. 750 00:37:09,650 --> 00:37:14,030 >> Ja tehkäämme niin, että sinulla voidaan nähdä molemmat. 751 00:37:14,030 --> 00:37:20,250 Että yksi painettu hey ja että yksi painetut hei kaikki käynnissä - 752 00:37:20,250 --> 00:37:22,550 Tehdäänpä että kokeilun uudelleen. 753 00:37:22,550 --> 00:37:25,100 Tai oikeastaan ​​käytä tätä huijata, jos sopii. 754 00:37:25,100 --> 00:37:30,520 >> Joten aion käyttää shell asia, että antaa minulle mahdollisuuden periaatteessa ajaa kaksi kopiota 755 00:37:30,520 --> 00:37:32,630 Tämän ohjelman rinnakkain. 756 00:37:32,630 --> 00:37:36,070 Joten se ajaa ensimmäinen ohjelma ja Toinen ohjelma rinnakkain. 757 00:37:36,070 --> 00:37:39,060 Joten nyt jos painan Enter, se tulee tekemään pyyntöön melko paljon 758 00:37:39,060 --> 00:37:40,570 välittömästi samaan aikaan. 759 00:37:40,570 --> 00:37:42,620 Joten antaa tämän laukaus. 760 00:37:42,620 --> 00:37:44,950 >> Joten nyt huomaa sanotaan kaksi prosessia. 761 00:37:44,950 --> 00:37:50,630 Ja jos olet kiinnostunut, että 27000 numero on pohjimmiltaan prosessi ID. 762 00:37:50,630 --> 00:37:52,940 Ja sitten huomaa, ne tulostetaan hei samaan aikaan. 763 00:37:52,940 --> 00:37:56,820 Se ei ollut meidän piti odottaa viisi sekuntia yhden ja sitten sen jälkeen, 764 00:37:56,820 --> 00:37:59,640 viiden sekunnin kuluttua saat toisen. 765 00:37:59,640 --> 00:38:03,300 Niin, että on tavallaan, tietyllä tavalla, se on ei oikeastaan ​​todisteita, mutta se on 766 00:38:03,300 --> 00:38:07,390 intuitiivinen näyttöä siitä, että se ei ole vain kuten odottaa viisi sekuntia ja estää 767 00:38:07,390 --> 00:38:08,960 koko säiettä. 768 00:38:08,960 --> 00:38:10,720 OK viileä. 769 00:38:10,720 --> 00:38:17,850 >> Niin Aaron kysyi kysymyksen aiemmin, että oli, hyvin, mitä jos emme tee jotain - 770 00:38:17,850 --> 00:38:18,735 Jep? 771 00:38:18,735 --> 00:38:19,051 >> Yleisö: Odota. 772 00:38:19,051 --> 00:38:21,585 Miten on, että eroaa printf puskuria, vaikka? 773 00:38:21,585 --> 00:38:23,010 Eikö se automaattisesti tehdä? 774 00:38:23,010 --> 00:38:25,390 Miksi meidän täytyy huolehtia siitä? 775 00:38:25,390 --> 00:38:26,555 >> KEVIN SCHMID: Voi, voi sinua sanoa, että vielä kerran? 776 00:38:26,555 --> 00:38:29,510 >> Yleisö: Ei pidä printf puskuria tehdä täsmälleen sama asia? 777 00:38:29,510 --> 00:38:31,280 >> KEVIN SCHMID: printf puskuri? 778 00:38:31,280 --> 00:38:32,753 >> Yleisö: Joo. 779 00:38:32,753 --> 00:38:33,244 OK. 780 00:38:33,244 --> 00:38:40,609 Ei ollut yksi tietokilpailuja he olivat puhumme siitä, miten jos oikea printf 781 00:38:40,609 --> 00:38:42,899 jotain ja sitten on se tauko yksi Toinen, ja sitten on se silmukan kymmenen 782 00:38:42,899 --> 00:38:46,530 kertaa, se odottaa kymmenen sekuntia ja sitten printf kaikki yhdessä? 783 00:38:46,530 --> 00:38:47,460 >> KEVIN SCHMID: Oh, OK. 784 00:38:47,460 --> 00:38:49,170 >> Yleisö: se tekee saman asia sitten tässä tapauksessa? 785 00:38:49,170 --> 00:38:52,630 >> KEVIN SCHMID: Eli kysymys oli periaatteessa yksi entisen tietokilpailuja 786 00:38:52,630 --> 00:38:57,200 tai jotain, siellä oli kysymys, että Periaatteessa jos sanot print f 10 787 00:38:57,200 --> 00:39:01,490 asioita kerrallaan ja sitten nukuin kuin vuonna prosessi tulostaa ne pois, 788 00:39:01,490 --> 00:39:04,850 lopussa jostain syystä, se olisi vain dump nämä kaikki ruudulla. 789 00:39:04,850 --> 00:39:06,740 Niin siellä on tavallaan kaksi eri käsitteitä täällä. 790 00:39:06,740 --> 00:39:10,400 >> Joten kai yksi asia on, että tässä tapauksessa olemme tekemisissä kahden eri 791 00:39:10,400 --> 00:39:13,510 tavallaan ihmiset pyytävät palvelin asioita samalla kertaa. 792 00:39:13,510 --> 00:39:17,455 Ja siitä syystä, että printf sellainen odottaa kaltainen ja kaatopaikkojen sen kaiken ulos 793 00:39:17,455 --> 00:39:21,760 kerralla liittyy enemmän miten printf sellainen - 794 00:39:21,760 --> 00:39:25,100 niin tapa printf on todella täytäntöön on se pohjimmiltaan on 795 00:39:25,100 --> 00:39:28,850 puhua käyttöjärjestelmän kirjoittaa että tavaraa konsoliin. 796 00:39:28,850 --> 00:39:33,460 Joten se ei halua tehdä kaikkea tätä kamaa heti kun sanot printf 797 00:39:33,460 --> 00:39:36,260 Joissakin merkkijono koska joka voisi tulla kalliiksi, jos se on 798 00:39:36,260 --> 00:39:37,340 tehdä joka kerta. 799 00:39:37,340 --> 00:39:41,530 >> Joten jos et printf hei, ohjelma ehkä todellisuudessa tulostaa, että 800 00:39:41,530 --> 00:39:43,040 välittömästi konsoliin. 801 00:39:43,040 --> 00:39:46,080 Voisi sanoa, OK, kirjoitin sen. 802 00:39:46,080 --> 00:39:49,570 Ja sitten tavallaan odottaa sinua antamaan se hieman ennen itse 803 00:39:49,570 --> 00:39:51,380 kirjoittaa sen ulos konsolin. 804 00:39:51,380 --> 00:39:54,040 >> Niin siitä syystä, että näin oli - 805 00:39:54,040 --> 00:39:56,450 ja se on tavallaan liity to sleep - 806 00:39:56,450 --> 00:40:00,060 on, että uni oli tavallaan vain pistetään osoitetaan, 807 00:40:00,060 --> 00:40:02,480 se, että se ei kirjoita se synkronoidusti. 808 00:40:02,480 --> 00:40:06,210 Mutta syy siihen on juuri tehokkuutta niin, että sinun ei tarvitse 809 00:40:06,210 --> 00:40:08,920 tehdä, että monet yhteydet käyttöjärjestelmä. 810 00:40:08,920 --> 00:40:12,300 >> Mutta täällä, mitä me todella yrittää tehdä tämä uni asia on juuri näytä 811 00:40:12,300 --> 00:40:17,730 että kun meillä on kaksi ihmistä vierailevat tällä sivustolla, se ei tule laittaa 812 00:40:17,730 --> 00:40:22,310 niitä kohtaan, jossa se aikoo sanoa Minun täytyy auttaa sinua, ja sitten kun olen 813 00:40:22,310 --> 00:40:25,350 täysin valmis auttamaan sinua näiden jälkeen viisi sekuntia ja aion 814 00:40:25,350 --> 00:40:26,750 siirtyy seuraavalle henkilölle. 815 00:40:26,750 --> 00:40:29,515 Joten ensimmäinen henkilön pyyntö ei sitoa Tällöin silmukka 816 00:40:29,515 --> 00:40:31,610 jos se on järkevää. 817 00:40:31,610 --> 00:40:34,980 >> Mutta tässä on todella esimerkki jotain, joka sitoo 818 00:40:34,980 --> 00:40:36,090 up tapahtuma silmukka. 819 00:40:36,090 --> 00:40:39,130 Joten tässä on kamala toiminto laskea nnen Fibonacci. 820 00:40:39,130 --> 00:40:43,510 Se on kirjaimellisesti pahempi tavalla voit laskea nnen Fibonaccin numero. 821 00:40:43,510 --> 00:40:48,480 Ja tämä on oikeastaan ​​vain tunnustamaan jos tämä tuli, 822 00:40:48,480 --> 00:40:49,330 siellä on todella - 823 00:40:49,330 --> 00:40:53,230 Tarkoitan, voit yrittää mennä etsimään sitä - mutta siellä on kuin hyvin pitkä blogi 824 00:40:53,230 --> 00:40:54,130 viesti, että joku kirjoitti. 825 00:40:54,130 --> 00:40:55,660 Se on kuin yksi niistä Reddit asioita. 826 00:40:55,660 --> 00:40:59,650 Mutta joku kritisoi Node.js ja he käyttivät tätä esimerkkinä. 827 00:40:59,650 --> 00:41:03,700 Joten olen sellainen halusin vain näyttää teille kaksi erilaisia ​​näkökulmia vain saada 828 00:41:03,700 --> 00:41:07,320 yleinen käsitys käsitteiden takana nämä kaksi asiaa. 829 00:41:07,320 --> 00:41:13,050 >> Mutta tämä on valittu vain kamala, hirvittävän tehoton laskennallisesti 830 00:41:13,050 --> 00:41:15,940 intensiivinen tapa laskea nnen Fibonacci numero. 831 00:41:15,940 --> 00:41:21,180 Aivan kuten Sivuhuomautuksena, miksi se kamala kuin yhdellä tavalla? 832 00:41:21,180 --> 00:41:23,210 Jep? 833 00:41:23,210 --> 00:41:25,130 >> Yleisö: Sano aloitat ulos 1000. 834 00:41:25,130 --> 00:41:27,050 1000 jakautuu 999 ja 998. 835 00:41:27,050 --> 00:41:28,970 Jokainen tämän jakautuu kaksi asiaa. 836 00:41:28,970 --> 00:41:30,890 Jokainen tämän jakautuu kaksi asiaa. 837 00:41:30,890 --> 00:41:31,355 >> KEVIN SCHMID: Oikea. 838 00:41:31,355 --> 00:41:32,400 >> Yleisö: Kaikki alas. 839 00:41:32,400 --> 00:41:32,840 >> KEVIN SCHMID: Aivan. 840 00:41:32,840 --> 00:41:37,330 Joten vain toista kameraa, jos olen soita fib on kuten 1000 tai jotain 841 00:41:37,330 --> 00:41:41,810 niin, se on tietysti vähintään tai yhtä suuri kuin niin aion 842 00:41:41,810 --> 00:41:46,040 mennä tähän muuta tapauksessa ja sitten aion soittaa fib 999 plus fiber 998. 843 00:41:46,040 --> 00:41:50,290 Ja sitten jokseenkin kaikki, jotka työtä, fib 999 ei on 844 00:41:50,290 --> 00:41:52,950 Tällainen tällä tasolla. 845 00:41:52,950 --> 00:41:55,620 Jos menet alas, se on vieläkin tarpeeton kuin että, mutta jos vain 846 00:41:55,620 --> 00:42:01,390 ajatella computing FIB 998 saa meitä melko lähellä fiber 999. 847 00:42:01,390 --> 00:42:05,860 Oikeastaan ​​meidän pitäisi siis olla hieman fiksu siitä, miten me tavallaan uudelleen 848 00:42:05,860 --> 00:42:07,580 Näistä mutta emme uudelleenkäyttö näitä asioita ollenkaan. 849 00:42:07,580 --> 00:42:11,860 Joten voitte kuvitella tämä jättiläismäinen, jättimäinen puu, joka on vain kamala. 850 00:42:11,860 --> 00:42:12,940 >> Mutta joka tapauksessa, OK. 851 00:42:12,940 --> 00:42:14,040 Niin että oli kammiovärinää. 852 00:42:14,040 --> 00:42:15,530 Se vain vie aikaa ajaa. 853 00:42:15,530 --> 00:42:16,510 Jep? 854 00:42:16,510 --> 00:42:17,760 >> Yleisö: [kuultavissa]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> KEVIN SCHMID: Voi, voi sinua toistaa kysymyksen? 857 00:42:22,481 --> 00:42:23,731 >> Yleisö: [kuultavissa]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> KEVIN SCHMID: Ai niin tämä on vain koodi että tulee olemaan eräänlainen päälle 860 00:42:33,990 --> 00:42:34,850 palvelimen puolella. 861 00:42:34,850 --> 00:42:38,100 Joten tämä ei aio löydy selaimessa tai mitään. 862 00:42:38,100 --> 00:42:42,160 Se on pohjimmiltaan mitä meillä on, että kun käyttäjä täällä melko paljon merkkeihin 863 00:42:42,160 --> 00:42:45,300 niiden pyynnöstä uudelleen, kun me tavallaan pyytävät, aiomme soittaa 864 00:42:45,300 --> 00:42:47,040 tämä toiminto palvelimen puolella. 865 00:42:47,040 --> 00:42:50,480 Ja sitten saamme tuloksen takaisin kutsumasta tätä toiminnallisuutta. 866 00:42:50,480 --> 00:42:52,460 Ja sitten me vain tulostaa sen käyttäjälle. 867 00:42:52,460 --> 00:42:54,580 Joten käyttäjän ei oikeastaan ​​käsitellä Tällä toiminnolla liikaa. 868 00:42:54,580 --> 00:42:57,270 >> Oliko tuo kysymys? 869 00:42:57,270 --> 00:42:58,470 Onko järkeä? 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 >> Joten jälleen, me teemme näin koko res.writeHead asia, jossa me tulostaa 873 00:43:04,240 --> 00:43:05,150 otsikon. 874 00:43:05,150 --> 00:43:09,730 Ja sitten päätän vastausta tekemällä maaginen numero on FIB 45. 875 00:43:09,730 --> 00:43:12,100 Joten haluan vain ajaa tällä palvelimella. 876 00:43:12,100 --> 00:43:15,190 Joten aion tehdä Node fib.js. 877 00:43:15,190 --> 00:43:17,340 Joten nyt minun valehdella palvelin on käynnissä. 878 00:43:17,340 --> 00:43:21,790 >> Ja sitten täällä, aion tehdä yksi näistä. 879 00:43:21,790 --> 00:43:22,200 OK? 880 00:43:22,200 --> 00:43:24,960 Joten olen juuri menossa sanoa, Curl. 881 00:43:24,960 --> 00:43:32,226 Joten se vie vähän aikaa, mutta toivottavasti pian se loppuun ja 882 00:43:32,226 --> 00:43:35,660 se tulostaa, että 45th Fibonacci numero. 883 00:43:35,660 --> 00:43:36,910 >> Yleisö: [kuultavissa]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> KEVIN SCHMID: sen pitäisi saada tehdyksi melko pian. 886 00:43:42,050 --> 00:43:43,780 Joten sen pitäisi kestää viisi vaille kuusi sekuntia. 887 00:43:43,780 --> 00:43:48,570 En tiedä, se on vain V8 oloa nopeasti, mutta joka tapauksessa tämä on 888 00:43:48,570 --> 00:43:52,700 hyvin lyhyt esimerkki ja tarkoituksella kömpelö ja ei-triviaali 889 00:43:52,700 --> 00:43:54,200 laskenta. 890 00:43:54,200 --> 00:43:56,700 Niin sen jälkeen kun, se ei saa tätä. 891 00:43:56,700 --> 00:44:02,130 >> Mutta nyt, mitä jos teen sen samanlaista Kokeilun kuin ennen, jos teen 892 00:44:02,130 --> 00:44:04,010 kaksi pyyntöä samaan aikaan? 893 00:44:04,010 --> 00:44:06,990 Joten tässä aion käpertymät osoitteeseen, ja aion 894 00:44:06,990 --> 00:44:08,260 tehdä toisen Curl. 895 00:44:08,260 --> 00:44:12,070 Ja muistakaa, kun teimme tätä nukkua palvelin, kun olemme periaatteessa ollut sitä 896 00:44:12,070 --> 00:44:15,320 viiden sekunnin kuluttua, he melko paljon molemmat tulivat takaisin oikealle 897 00:44:15,320 --> 00:44:16,380 samoihin aikoihin. 898 00:44:16,380 --> 00:44:18,650 Joten se ei ollut erityisen sidottu. 899 00:44:18,650 --> 00:44:20,290 >> Mutta katsotaanpa kokeilla sitä nyt. 900 00:44:20,290 --> 00:44:22,370 OK, joten saimme kaksi prosessia. 901 00:44:22,370 --> 00:44:24,210 Muistatko ne ovat prosessin tunnukset. 902 00:44:24,210 --> 00:44:25,900 Tämä tulee olemaan hieman hankala kun me pitkittyä. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 Joten haluan vain jäädä tänne ja odota. 905 00:44:35,360 --> 00:44:37,090 >> Joten yksi heistä pitäisi tulla takaisin jälkeen kuten - 906 00:44:37,090 --> 00:44:39,190 OK, joten yksi tuli takaisin. 907 00:44:39,190 --> 00:44:43,570 Mutta miksi ei toista yksi palata ihan vielä? 908 00:44:43,570 --> 00:44:44,389 Jep? 909 00:44:44,389 --> 00:44:49,280 >> Yleisö: palvelin ei voi tehdä mitään kun se on laskentatehoa, että suuri määrä. 910 00:44:49,280 --> 00:44:51,620 >> KEVIN SCHMID: Oikea. 911 00:44:51,620 --> 00:44:55,395 Joten vastaus oli vain, että palvelin todellakaan voi tehdä mitään, ennen kuin 912 00:44:55,395 --> 00:44:57,460 se computing että Fibonacci numero. 913 00:44:57,460 --> 00:44:59,360 Joten nyt olen juuri saanut kaksi asiaa takaisin. 914 00:44:59,360 --> 00:45:03,210 Mutta kai vain ajatella koodi hieman, miten se toimii 915 00:45:03,210 --> 00:45:05,030 ja kaikkea. 916 00:45:05,030 --> 00:45:11,750 >> Joten tämä toiminto tässä koodi, joka Olen kertonut tämän palvelimen suoritettavaksi, kun se 917 00:45:11,750 --> 00:45:14,100 vastaanottaa uuden saapuvan pyynnön. 918 00:45:14,100 --> 00:45:17,940 Niin se vain menee läpi tämän koko koodi, ja sitten se tulee menemään 919 00:45:17,940 --> 00:45:21,120 Takaisin tapahtuman silmukka ja jatka sitten tarkistaa uusia tapahtumia. 920 00:45:21,120 --> 00:45:23,670 Joten periaatteessa mitä olemme tapahtumassa on palvelin on 921 00:45:23,670 --> 00:45:25,080 kuuntelee uusia asioita. 922 00:45:25,080 --> 00:45:28,070 Ensimmäinen henkilö pyytää mitä 45 on. 923 00:45:28,070 --> 00:45:30,490 Otamme tämän koodin laskea sitä. 924 00:45:30,490 --> 00:45:33,420 Tämä koodi otetaan noin viisi kuusi sekuntia juosta. 925 00:45:33,420 --> 00:45:36,990 Sitten palaamme tapahtuman silmukka ja tarkista uusia pyyntöjä. 926 00:45:36,990 --> 00:45:42,700 >> Joten tämä on esimerkki siitä, miten, jos ovat asioita, jotka ovat ns compute 927 00:45:42,700 --> 00:45:48,140 sidottu, tai käytä paljon laskennallisia, ei valtaa, mutta kuten on 928 00:45:48,140 --> 00:45:50,260 laskentaintensiivisiä - 929 00:45:50,260 --> 00:45:54,080 Oletan yksi asia sanottavana tästä on että tämä toiminto tekee täysin, 930 00:45:54,080 --> 00:45:56,310 suurimmaksi osaksi, melko hyödyllistä työtä oikeassa. 931 00:45:56,310 --> 00:45:59,970 Koko ajan, että soittopyynnön toiminto on käynnissä, se oli aika 932 00:45:59,970 --> 00:46:03,670 paljon viettävät suurimman osan ajastaan ​​vain computing että nnen Fibonacci numero. 933 00:46:03,670 --> 00:46:05,930 >> Mutta meillä oli vain yksi säie käsitellä. 934 00:46:05,930 --> 00:46:10,270 Apache mallissa, kun kaksi ihmistä esittänyt pyynnön saada fiber 45, me 935 00:46:10,270 --> 00:46:11,610 olisi ollut kaksi eri langalla. 936 00:46:11,610 --> 00:46:15,060 Ja sitten käyttöjärjestelmän työtä olisi ollut, tai käyttäjän tasolla 937 00:46:15,060 --> 00:46:18,660 koodi, joka hallinnoi kierteet, olis ollut viipaloida että ylös 938 00:46:18,660 --> 00:46:23,060 CPU, tai vaikka olet ollut useita suorittimia, jakaa ne tasaisesti prosessorien 939 00:46:23,060 --> 00:46:26,130 niin että he olivat molemmat viimeistely suunnilleen samaan aikaan. 940 00:46:26,130 --> 00:46:31,120 >> Joten vain näyttää, miten voimme tavallaan - ja tämä ei ole yhteensä täydellinen 941 00:46:31,120 --> 00:46:34,280 ratkaisu, mutta tavallaan, miten voimme tehdä tulla takaisin tänne ja tehdä 942 00:46:34,280 --> 00:46:35,880 hieman paremmin. 943 00:46:35,880 --> 00:46:41,540 Joten mitä olen tässä ohjelma nimeltä Fib C. Ja tämä periaatteessa käyttää 944 00:46:41,540 --> 00:46:45,690 jälleen yksi solmun moduuleja kutsutaan Lapsi prosessimoduuliin. 945 00:46:45,690 --> 00:46:49,210 Joten olen mukana, että huipulla laji samankaltaisten tekisin punnan kuuluvat 946 00:46:49,210 --> 00:46:51,230 lapsi process.h tai jotain. 947 00:46:51,230 --> 00:46:56,210 Nyt minulla on pääsy tähän CP muuttujan jolla on kaikki minun toiminnot. 948 00:46:56,210 --> 00:47:01,810 >> Joten nyt mitä teen tässä vastaus käsittelijä on juosten tämän ohjelman 949 00:47:01,810 --> 00:47:04,100 dot slash FIB 45. 950 00:47:04,100 --> 00:47:06,820 Joten mitä olen tehnyt - ja olen juuri menossa astua ulos tämän ohjelman 951 00:47:06,820 --> 00:47:07,620 vähän - 952 00:47:07,620 --> 00:47:11,060 on Olen kirjoittanut C-ohjelma, joka pohjimmiltaan laskee 953 00:47:11,060 --> 00:47:12,630 nnen Fibonacci numero. 954 00:47:12,630 --> 00:47:15,960 Joten tässä on vain ohjelma, olen kirjoittanut C, joka laskee tämän. 955 00:47:15,960 --> 00:47:19,040 Voin kääntää sen, ja voin ajaa se komentoriviltä. 956 00:47:19,040 --> 00:47:22,150 Ja se tulee laskea 45. Fibonacci numero. 957 00:47:22,150 --> 00:47:24,510 >> Niin huomaa se vain vie melko paljon niin kauan. 958 00:47:24,510 --> 00:47:28,240 Olen luultavasti voinut käyttää viiva 03 to optimoida sen tai jotain, 959 00:47:28,240 --> 00:47:31,050 mutta tein kuten säännöllinen kääntäjä asetukset. 960 00:47:31,050 --> 00:47:33,260 Ja se tulostaa sen. 961 00:47:33,260 --> 00:47:36,830 >> Mutta nyt, mitä minä olen sellainen tekee? 962 00:47:36,830 --> 00:47:39,800 Voi anteeksi, väärän tiedoston. 963 00:47:39,800 --> 00:47:42,800 Joten teen saman juttuja header kuin ennen. 964 00:47:42,800 --> 00:47:45,780 Sitten teen tämän cp.exec. 965 00:47:45,780 --> 00:47:49,460 Joten mitä tämä aikoo tehdä, on se aikoo suorittaa tämän ohjelman. 966 00:47:49,460 --> 00:47:51,960 Mutta miten tämä toimii on se, että se ei tule odottaa 967 00:47:51,960 --> 00:47:53,400 että ohjelman loppuun. 968 00:47:53,400 --> 00:47:56,000 Se vain pohjimmiltaan sanoo Ohjelman toteutuksen. 969 00:47:56,000 --> 00:47:58,700 Joten periaatteessa kirjoita tämä otetaan komentokehotteen sellainen. 970 00:47:58,700 --> 00:48:02,350 >> Ja sitten, kun olet valmis kanssa se, suorita tämä toiminto. 971 00:48:02,350 --> 00:48:04,800 Joten nyt sellaista saada tämän koko palautettu asia 972 00:48:04,800 --> 00:48:06,750 kuten emme odottaneet. 973 00:48:06,750 --> 00:48:08,530 Onko sellaista järkeä? 974 00:48:08,530 --> 00:48:08,990 Jep? 975 00:48:08,990 --> 00:48:11,060 >> Yleisö: [kuultavissa]? 976 00:48:11,060 --> 00:48:13,610 >> KEVIN SCHMID: Eli tämä todella avata uusi prosessi tehdä se. 977 00:48:13,610 --> 00:48:19,310 Joten tämä on todella, jollain tapaa, paha, ole super paha, mutta se on 978 00:48:19,310 --> 00:48:22,990 tärkeää todeta, että tämä on tavallaan menee takaisin, toisaalta Apache 979 00:48:22,990 --> 00:48:26,450 malli, jossa teemme kierteet ja prosessien kunkin pyynnön tai 980 00:48:26,450 --> 00:48:29,280 prosessit kullekin pyynnölle. 981 00:48:29,280 --> 00:48:32,090 Joten tämä on tavallaan analoginen mitä Apache tekee. 982 00:48:32,090 --> 00:48:35,110 Joissakin tapauksissa se vain käyttää uutta lanka, joka on hieman enemmän valoa 983 00:48:35,110 --> 00:48:39,040 painoarvoa kuin prosessi, mutta Apache voisi päätyä forking uusi prosessi 984 00:48:39,040 --> 00:48:43,370 joka on sellainen mitä me teemme täällä epäsuorasti tekemällä dot slash FIB 45. 985 00:48:43,370 --> 00:48:48,690 >> Ja niin siinä tapauksessa, me tavallaan aiheutuu samoista kuluista prosessien. 986 00:48:48,690 --> 00:48:50,710 Joten tämä on vain yksi asia mitä voi tehdä. 987 00:48:50,710 --> 00:48:52,600 Mutta vain osoittaa tällaista käynnissä. 988 00:48:52,600 --> 00:48:57,120 Ja tämä puhe on vain todella, joilla pyritään esittää tällaisia ​​ohjelmia 989 00:48:57,120 --> 00:49:00,710 tapa osoittaa erilaisia ​​näkökulmia miten suunnitella palvelimia niin. 990 00:49:00,710 --> 00:49:08,300 Joten tämä on käynnissä, ja niin nyt jos teen Tässä taas, sain kaksi prosessia tunnukset. 991 00:49:08,300 --> 00:49:10,320 >> Haluan vain puhua asioita huomauttaa. 992 00:49:10,320 --> 00:49:11,980 Niin huomaa, että he ovat vähitellen. 993 00:49:11,980 --> 00:49:12,700 Se on siistiä. 994 00:49:12,700 --> 00:49:15,140 Koska se oli 27,122 ennen. 995 00:49:15,140 --> 00:49:18,580 Mutta ilmoitusta nyt he tulivat takaisin suunnilleen samaan aikaan. 996 00:49:18,580 --> 00:49:23,960 >> Ja nyt, hyvä kysymys kysyä miksi oli, että tapaus on, jonka tehtävänä 997 00:49:23,960 --> 00:49:27,590 oli se nyt tavallaan tehdä näitä asioita Tällainen pelata rehellisesti keskenään 998 00:49:27,590 --> 00:49:31,350 muuta, nämä kaksi tapausta dot slash FIB 45 että juoksin 999 00:49:31,350 --> 00:49:32,880 tai että Node juoksi? 1000 00:49:32,880 --> 00:49:36,940 Kuka tavallaan tekee oikeudenmukaista, että he molemmat päästä eräänlainen mielipiteiden ajoaika? 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> Yleisö: [kuultavissa]. 1003 00:49:44,220 --> 00:49:44,620 >> KEVIN SCHMID: Joo. 1004 00:49:44,620 --> 00:49:49,740 Joten periaatteessa, kun en dot slash FIB 45 tai jotain, nyt se on 1005 00:49:49,740 --> 00:49:53,750 Tällainen jopa käyttöjärjestelmän käsitellä runtime näiden ohjelmien. 1006 00:49:53,750 --> 00:49:56,920 Ja nyt se voi ajoittaa ne eri suorittimia tai sen 1007 00:49:56,920 --> 00:49:58,330 voi ajoittaa ne. 1008 00:49:58,330 --> 00:50:01,870 Se voi paloitella aikaa, että yksi CPU saa sitä tai että he saavat 1009 00:50:01,870 --> 00:50:03,330 toimimaan yksi prosessori. 1010 00:50:03,330 --> 00:50:05,620 Niin, että ajatus siitä. 1011 00:50:05,620 --> 00:50:07,220 Onko järkeä kaikille? 1012 00:50:07,220 --> 00:50:10,950 Joten nyt Node ei oikeastaan ​​pelaa osaa jakaminen näihin tehtäviin. 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 >> Niin, että on melkein se esimerkkejä. 1016 00:50:17,840 --> 00:50:23,370 Halusin vain näyttää yksi asia koska paljon tämä on tähän mennessä ollut 1017 00:50:23,370 --> 00:50:27,350 ole täysin Super käytännön joissakin tapauksissa. 1018 00:50:27,350 --> 00:50:30,970 Voin kuvitella kotiin tämän jälkeen puhua ja jotain ja sanovat kuten, 1019 00:50:30,970 --> 00:50:35,710 hyvin olen sellainen riistäytynyt että puhetta, että Voin tehdä Fibonacci palvelin 1020 00:50:35,710 --> 00:50:37,360 Opinnäytetyöni. 1021 00:50:37,360 --> 00:50:40,770 Joten tässä on vain eräänlainen yksi esimerkki että toivottavasti tulee - 1022 00:50:40,770 --> 00:50:44,620 ehkä ei, mutta ehkä - hieman enemmän tavallaan liittyvät opinnäytetyöt ja 1023 00:50:44,620 --> 00:50:46,440 ajatellen tuollaista. 1024 00:50:46,440 --> 00:50:48,870 >> Joten tämä on chat.js. 1025 00:50:48,870 --> 00:50:52,290 Joten tämä on ikään kuin jonkin näytteen server side koodin, jota voisi käyttää 1026 00:50:52,290 --> 00:50:55,700 perustaa pienen chat-palvelimen, kuten olet ehkä nähnyt 1027 00:50:55,700 --> 00:50:56,630 Facebook Chat tai mitä tahansa. 1028 00:50:56,630 --> 00:50:59,990 Joten en sano tätä on kuin Facebook Chat, mutta tämä on tavallaan 1029 00:50:59,990 --> 00:51:06,230 kuten hyvä - ehkä ei hyvä, mutta ehkä hyvä - lähtökohta chat 1030 00:51:06,230 --> 00:51:08,560 palvelin sivustollesi ja opinnäytetyön. 1031 00:51:08,560 --> 00:51:11,040 Joten katsotaanpa mitä se tekee. 1032 00:51:11,040 --> 00:51:15,500 >> Joten saamme tämän erityinen asia yläosassa, tämä var SIO 1033 00:51:15,500 --> 00:51:17,050 vastaa vaativat Socket.IO. 1034 00:51:17,050 --> 00:51:20,280 Joten tämä on toinen asia, että se ei todella tulevat kylkiäisenä 1035 00:51:20,280 --> 00:51:22,300 Solmu, mutta voit asentaa sen. 1036 00:51:22,300 --> 00:51:23,480 Se on Node-moduuli. 1037 00:51:23,480 --> 00:51:25,670 Joten se on aivan kuin joidenkin laajennus Node. 1038 00:51:25,670 --> 00:51:29,220 >> SocketIO on itse asiassa todella eräänlainen jäähtyä. 1039 00:51:29,220 --> 00:51:32,550 Se on abstraktio, joka pohjimmiltaan mitä se on, on sen avulla voit 1040 00:51:32,550 --> 00:51:35,770 on tämä sarja viestintä välillä web 1041 00:51:35,770 --> 00:51:39,430 selaimen ja web-palvelin. 1042 00:51:39,430 --> 00:51:45,250 Joten suurin osa tähän mennessä meillä on ollut Näiden hyvin nopeasti yhden sekunnin tai kaksi 1043 00:51:45,250 --> 00:51:48,790 Toinen välisen viestinnän web selaimen ja web-palvelin. 1044 00:51:48,790 --> 00:51:53,310 Joten se on periaatteessa mennä google.com, get kamaa, lähettää sen takaisin, ja sitten 1045 00:51:53,310 --> 00:51:53,770 olemme valmiit. 1046 00:51:53,770 --> 00:51:56,560 Emme koskaan puhu uudelleen ennen käyttäjä on jotain muuta. 1047 00:51:56,560 --> 00:52:01,090 >> Mutta mitä Socket.IO ja samantyyppinen asioita - ja SocketIO on oikeastaan ​​yksi 1048 00:52:01,090 --> 00:52:03,940 asioita, jotka on rakennettu kuin WebSocket joka on eräänlainen saatavilla 1049 00:52:03,940 --> 00:52:06,440 osana HTML5 - 1050 00:52:06,440 --> 00:52:09,620 jonka avulla voit saada tämä jatkuvaa vuoropuhelua. 1051 00:52:09,620 --> 00:52:13,990 Ja tämä on erittäin hyödyllinen chat-palvelimen sellainen asia, koska se on 1052 00:52:13,990 --> 00:52:17,390 ikään kuin jatkuvaa vuoropuhelua Jollain tavalla koska jos olet chattailuun 1053 00:52:17,390 --> 00:52:21,540 jonkun kanssa, voit nyt vain lähettää Viestin alas putkeen, ja sitten 1054 00:52:21,540 --> 00:52:23,940 palvelin voi lähettää viestin alas putken toinen henkilö olet 1055 00:52:23,940 --> 00:52:24,520 chattailuun. 1056 00:52:24,520 --> 00:52:26,903 Ja sitten voit olla tämän vaihtaa niin. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> Niin, että sellainen mitä SocketIO on hyvä. 1059 00:52:32,850 --> 00:52:38,400 Syystä, että SocketIO käyttää WebSockets yksi asia on, että 1060 00:52:38,400 --> 00:52:43,980 lisäksi vain tavallinen vanha WebSockets, se myös tekee joitakin temppuja pohjimmiltaan 1061 00:52:43,980 --> 00:52:45,610 tehdä selaimen kanssa. 1062 00:52:45,610 --> 00:52:50,040 Joten selaimissa, kuten Internet Explorer valitettavasti eivät tue WebSockets 1063 00:52:50,040 --> 00:52:50,810 oikeus kättelyssä. 1064 00:52:50,810 --> 00:52:55,290 Joten se käyttää joitakin muita eräänlainen jäähtyä siisti asioita Adobe Flash sallia 1065 00:52:55,290 --> 00:52:57,170 voit olla rajat selain tukee. 1066 00:52:57,170 --> 00:52:58,800 Joten se on todella hyödyllinen. 1067 00:52:58,800 --> 00:53:02,440 >> Ja oikeastaan ​​tiedän, että olen sellainen käynnissä aikaa täällä, mutta CS50 1068 00:53:02,440 --> 00:53:08,490 Keskustele, oletko koskaan nähnyt jotain kuten, en tiedä, tyhjä niin ja niin on 1069 00:53:08,490 --> 00:53:11,030 vastaamalla tähän viestiin tai jotain niin, että ominaisuus? 1070 00:53:11,030 --> 00:53:12,250 Se on SocketIO. 1071 00:53:12,250 --> 00:53:15,580 Joten kun joku alkaa kirjoittamalla keskustella laatikko tehdä vastauksen tai 1072 00:53:15,580 --> 00:53:20,040 jotain, selaimesi ei mitä kutsutaan SocketIO säteilee jonkinlainen 1073 00:53:20,040 --> 00:53:22,660 Jos sanoo jonkun vastaamalla tähän virkaan. 1074 00:53:22,660 --> 00:53:26,110 >> Sitten palvelin sanoo, OK, Mitä minun täytyy tehdä? 1075 00:53:26,110 --> 00:53:29,270 No nyt minun täytyy kertoa ne muut kaverit jotka ovat CS50 Keskustele näköinen 1076 00:53:29,270 --> 00:53:31,170 tätä viestiä, että joku vastaaminen. 1077 00:53:31,170 --> 00:53:34,190 Niin, että sellainen mitä SocketIO on hyvä, tämä jatkuva tällaista 1078 00:53:34,190 --> 00:53:35,930 virta vuoropuhelua. 1079 00:53:35,930 --> 00:53:37,250 OK. 1080 00:53:37,250 --> 00:53:40,060 >> Joten mitä minulla on täällä - ja olemme vain menossa sivuuttaa yhteydet array 1081 00:53:40,060 --> 00:53:41,390 varten hieman - 1082 00:53:41,390 --> 00:53:43,080 mitä teen, on minulla toinen kuuntele. 1083 00:53:43,080 --> 00:53:46,880 Joten se on vain tapa Socket.IO on sanomalla Kuunnellaan tässä portissa. 1084 00:53:46,880 --> 00:53:50,060 Ja sitten tehdä tämän yhteyden. 1085 00:53:50,060 --> 00:53:53,360 Joten se on vain pohjimmiltaan Socket IO: n tapa sanoa, kun saamme 1086 00:53:53,360 --> 00:53:55,840 yhteydessä haluan sinun suorittaa tämän koodin. 1087 00:53:55,840 --> 00:53:59,870 >> Ja huomaa, että sen sijaan, rec ja res läpäissyt siellä minulla on Socket. 1088 00:53:59,870 --> 00:54:03,260 Ja tämä Socket idea on periaatteessa tämän asia, että voit lukea ja kirjoittaa 1089 00:54:03,260 --> 00:54:05,750 alkaen, että on käyttäjän viestien mahdollisesti. 1090 00:54:05,750 --> 00:54:10,700 Ja viestejä, joita voit lähettää voi mennä läpi, että Socket. 1091 00:54:10,700 --> 00:54:12,140 Onko järkeä? 1092 00:54:12,140 --> 00:54:14,490 Joten se on tämä jatkuva asia. 1093 00:54:14,490 --> 00:54:17,820 >> Joten mitä teen, on soittaa Socket.emit. 1094 00:54:17,820 --> 00:54:20,330 Ja Emit vie melko paljon kaksi argumenttia. 1095 00:54:20,330 --> 00:54:24,100 Ensimmäinen argumentti on merkkijono vain edustavat tyyppi 1096 00:54:24,100 --> 00:54:25,270 asia olet emitting. 1097 00:54:25,270 --> 00:54:28,120 Joten tässä tapauksessa, olen käyttöön tämä merkkijono uusi viesti. 1098 00:54:28,120 --> 00:54:32,670 Ja tämä on vain pohjimmiltaan sanomalla, että tyyppi tämä asia, mitä olen 1099 00:54:32,670 --> 00:54:34,750 lähettäminen, on uusi viesti. 1100 00:54:34,750 --> 00:54:38,460 Joten voit kuunnella tietyntyyppisiä kuten uuden viestin tai jotain 1101 00:54:38,460 --> 00:54:39,960 käyttämällä pisteellä. 1102 00:54:39,960 --> 00:54:44,570 >> Joten yhteys ja käyttäjän sinne lähetetään, jos katsot missä me kutsumme piste, 1103 00:54:44,570 --> 00:54:48,150 ne ovat muiden kielien, jotka edustavat erilaisten käyttäjien viestejä. 1104 00:54:48,150 --> 00:54:52,060 Joten se on periaatteessa voit saada tämän emit yksi näistä viestin tyyppejä, ja 1105 00:54:52,060 --> 00:54:55,520 sitten tehdä jotain vastaukseksi yksi näistä viestin tyypit 1106 00:54:55,520 --> 00:54:57,640 >> Joten olen emitting tämän uuden viestin. 1107 00:54:57,640 --> 00:55:00,540 Aiomme jättää connections.push toista. 1108 00:55:00,540 --> 00:55:03,360 Mutta sitten sanon, Socket.on käyttäjän lähetetty. 1109 00:55:03,360 --> 00:55:07,540 Joten nyt se on tavallaan kuin silloin, kun käyttäjä lähettää minulle viestin, haluan 1110 00:55:07,540 --> 00:55:09,240 voit suorittaa tämän koodin. 1111 00:55:09,240 --> 00:55:12,080 Ja huomaa, että tämä nimetön funktio ryhtyy tämän muuttujan 1112 00:55:12,080 --> 00:55:16,300 nimeltään data joka on pohjimmiltaan menossa on käyttäjän viestin. 1113 00:55:16,300 --> 00:55:20,700 >> Joten Nyt sellainen puhua liitännät array. 1114 00:55:20,700 --> 00:55:24,590 Joten tämä on suunniteltu chat client jossa periaatteessa kaikki on tavallaan vuonna 1115 00:55:24,590 --> 00:55:25,950 sama chat. 1116 00:55:25,950 --> 00:55:29,640 Joten periaatteessa, mitä meidän täytyy pitää noin on noin array että pohjimmiltaan 1117 00:55:29,640 --> 00:55:33,170 edustaa kaikkia ihmisiä jutteleminen Jollain tavalla, jos se on järkevää. 1118 00:55:33,170 --> 00:55:33,340 Oikea? 1119 00:55:33,340 --> 00:55:37,190 Koska meidän täytyy tietää, kuka ne tyypit niin voimme lähettää heille viestejä 1120 00:55:37,190 --> 00:55:39,140 että muut ihmiset lähettävät meille. 1121 00:55:39,140 --> 00:55:44,440 >> Joten mitä tämä koodi tekee on, kun käyttäjä lähettää viestin - se tyyppi 1122 00:55:44,440 --> 00:55:45,300 tapahtuma - 1123 00:55:45,300 --> 00:55:47,120 aiomme suorittaa tämän koodin. 1124 00:55:47,120 --> 00:55:51,240 Ja mitä teemme on käymme läpi tätä array että olemme kutsuneet yhteyksiä. 1125 00:55:51,240 --> 00:55:54,390 Ja melko paljon jokainen liitäntä paitsi yksi, joka on meidän, se on 1126 00:55:54,390 --> 00:55:59,520 mitä tämä koodi sanoo, lähetämme uuden viestin, että liitetty viesti 1127 00:55:59,520 --> 00:56:01,210 tietoja. 1128 00:56:01,210 --> 00:56:04,880 >> Joten jos huomaat täällä, mitä tein, kun käyttäjä todella tekee uuden 1129 00:56:04,880 --> 00:56:08,560 yhteys on Olen lisännyt kanssa JavaScript.push menetelmä, tämä on 1130 00:56:08,560 --> 00:56:12,100 pohjimmiltaan vain sanomalla, kuten lisätä että Socket arvona osaksi 1131 00:56:12,100 --> 00:56:13,900 yhteytemme array. 1132 00:56:13,900 --> 00:56:20,560 Joten nyt kun tämä koodi suoritetaan, se Lähetä asioita kyseisiä 1133 00:56:20,560 --> 00:56:22,020 liitännät. 1134 00:56:22,020 --> 00:56:26,980 Joten tämä voi olla hyvä lähtökohta tehdä chat-palvelimen 1135 00:56:26,980 --> 00:56:28,250 tai jotain vastaavaa. 1136 00:56:28,250 --> 00:56:33,315 >> Ja sellainen cool juttu on, että koodi jonka näet täällä vastaavaa ja 1137 00:56:33,315 --> 00:56:36,390 lähettävät ja tavaraa niin on sama Tällainen JavaScript-koodia, joka olisit 1138 00:56:36,390 --> 00:56:39,260 kirjoittaa selaimen vuorovaikutuksessa palvelimen kanssa. 1139 00:56:39,260 --> 00:56:42,480 Joten siksi SocketIO on eräänlainen siisti ja käyttökelpoinen tällä tavalla. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> Niin ja vielä yksi asia todella nopeasti. 1142 00:56:49,250 --> 00:56:55,970 Oli CS50 opinnäytetyön viime vuonna että pohjimmiltaan toteutettu chat 1143 00:56:55,970 --> 00:56:57,840 palvelin Node.js. 1144 00:56:57,840 --> 00:57:01,350 Minusta se on Harvardchats.org mutta en ole - 1145 00:57:01,350 --> 00:57:02,940 OK. 1146 00:57:02,940 --> 00:57:06,190 En ole varma, mitä URL-osoite on, mutta Voin lähettää, että jälkeenpäin. 1147 00:57:06,190 --> 00:57:09,260 Mutta se on tavallaan jäähtyä mitä voit tehdä Node.js. 1148 00:57:09,260 --> 00:57:14,680 >> Joten toivon, yleensä teillä hyvän tunteen, mitä Node.js on hyödyllistä 1149 00:57:14,680 --> 00:57:17,870 ja miten voisit ehkä hakea oman opinnäytetyön. 1150 00:57:17,870 --> 00:57:21,050 Aion lähettää lisää resursseja yhdessä tämän. 1151 00:57:21,050 --> 00:57:23,170 Ja kiitos että tulitte. 1152 00:57:23,170 --> 00:57:23,610 Kiitos. 1153 00:57:23,610 --> 00:57:27,168 >> [APPLAUSE]