1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> KEVIN Schmid: Halló allir. 3 00:00:09,710 --> 00:00:12,640 Velkomin á CS50 málstofa á Node.js. 4 00:00:12,640 --> 00:00:13,955 Mitt nafn er Kevin. 5 00:00:13,955 --> 00:00:15,580 Ég er CS50 TF. 6 00:00:15,580 --> 00:00:17,650 Og ég er tegund af eins og virkilega spennt um þetta námskeið. 7 00:00:17,650 --> 00:00:20,430 Ég held að Node.js er mjög svalt. 8 00:00:20,430 --> 00:00:24,200 Ég vona að þessi málstofa er hægt að nota sem góður, ég held, stökkbretti fyrir 9 00:00:24,200 --> 00:00:26,380 sumir af lokaverkefnum þínar ef þú ert áhuga á að nýta 10 00:00:26,380 --> 00:00:27,630 eitthvað eins Node.js. 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> Við munum konar byrja á námskeiðinu á því að bara að tala um smá í 13 00:00:33,320 --> 00:00:36,970 konar bakgrunnur sveigjanleika sjónarmið Node.js, og þá 14 00:00:36,970 --> 00:00:39,240 við munum fara að einhverju kóða dæmi. 15 00:00:39,240 --> 00:00:42,340 Og ég ætla kóðann á vef, og þú getur að líta á kóðann. 16 00:00:42,340 --> 00:00:45,475 Og eftir námskeiðið, ég flokka tal um hvernig þú getur sett upp Node.js 17 00:00:45,475 --> 00:00:48,220 á tölvunni þinni. 18 00:00:48,220 --> 00:00:48,710 >> OK. 19 00:00:48,710 --> 00:00:49,760 Svo skulum við hefjast handa. 20 00:00:49,760 --> 00:00:53,700 Svo ég held ég vil bara að tala um vefur framreiðslumaður, í raun, fyrst. 21 00:00:53,700 --> 00:00:59,730 Og til að byrja þessa umræðu, ég í grundvallaratriðum með skýringarmynd sem er frá 22 00:00:59,730 --> 00:01:04,269 Kennslubók notuð til CS61, sem grundvallaratriðum sýnir samspil 23 00:01:04,269 --> 00:01:08,510 milli skjólstæðings ferli, eins og þinn vefur vafra eða eins markmiði þinn viðskiptavinur eða 24 00:01:08,510 --> 00:01:11,340 eitthvað svoleiðis, og a vefur framreiðslumaður. 25 00:01:11,340 --> 00:01:15,150 Svo af þessu tagi líkist þeirri mynd sem þú sást í fyrirlestri á 26 00:01:15,150 --> 00:01:19,270 Miðvikudagur þar grundvallaratriðum höfum við nokkur viðskiptavinur ferli eins og Google Króm. 27 00:01:19,270 --> 00:01:22,980 >> Og þá er skref eitt viðskiptavinur sendir beiðni. 28 00:01:22,980 --> 00:01:27,510 Svo að geta vera eitthvað eins vel skulum heimsækja, ég veit ekki, CS50.net. 29 00:01:27,510 --> 00:01:29,320 Svo við mál sem beiðni. 30 00:01:29,320 --> 00:01:34,280 Og hefur einhver man nafnið á siðareglur sem skilgreinir hvernig þessi 31 00:01:34,280 --> 00:01:35,610 Beiðni skal byggð? 32 00:01:35,610 --> 00:01:36,382 Yep. 33 00:01:36,382 --> 00:01:37,650 >> Áhorfendur: [inaudible]. 34 00:01:37,650 --> 00:01:38,150 >> KEVIN Schmid: Einmitt. 35 00:01:38,150 --> 00:01:40,100 Svo er það eins og HTTP, ekki satt? 36 00:01:40,100 --> 00:01:44,720 Svo í grundvallaratriðum það forskrift fyrir því hvernig ætti í raun að vera sett að beiðni 37 00:01:44,720 --> 00:01:47,450 út, því að í lok dagsins, sem beiðni er í raun bara eins og 38 00:01:47,450 --> 00:01:50,240 band sem í grundvallaratriðum segir að ég vil þetta. 39 00:01:50,240 --> 00:01:53,580 Og forskrift fyrir það er HTTP. 40 00:01:53,580 --> 00:01:55,270 Svo er það eins og siðareglur. 41 00:01:55,270 --> 00:01:57,920 >> Svo þá þjóninn fær að beiðni. 42 00:01:57,920 --> 00:02:01,610 Svo þú krakkar hafa a vefur framreiðslumaður uppsett í CS50 tæki. 43 00:02:01,610 --> 00:02:02,460 Það er Apache. 44 00:02:02,460 --> 00:02:06,230 Og í þessari viku þegar þú vinnur á vandamáli setja sjö, munt þú í raun að vera að vinna 45 00:02:06,230 --> 00:02:08,160 með þessi vefur framreiðslumaður. 46 00:02:08,160 --> 00:02:12,380 Svo þjóninn fær þá beiðni, og þá hefur það að eins konar klóra þess 47 00:02:12,380 --> 00:02:15,090 höfuð og segja eins vel hvað á ég að gera með þetta? 48 00:02:15,090 --> 00:02:20,060 >> Svo miðað við það sem það ákveður að gera, þá það gæti þurft að hafa samband við einhverja 49 00:02:20,060 --> 00:02:20,730 auðlindar. 50 00:02:20,730 --> 00:02:23,700 Og að úrræði gæti verið fullt af mismunandi hlutum. 51 00:02:23,700 --> 00:02:26,810 Fyrir einn, gæti það verið bara eins og truflanir HTML skrá. 52 00:02:26,810 --> 00:02:29,820 Svo það gæti bara verið eins og sumir HTML sem er eins og fyrir 53 00:02:29,820 --> 00:02:31,100 persónulega vefsíðu þína. 54 00:02:31,100 --> 00:02:35,360 Það gæti verið kyrrstæð skrá eins og mynd eða eins og bíómynd sem þú hefur. 55 00:02:35,360 --> 00:02:37,660 Það gæti jafnvel þurft að tala til einhvers konar gagnagrunn 56 00:02:37,660 --> 00:02:39,530 eins og MySQL gagnagrunnur. 57 00:02:39,530 --> 00:02:43,910 Svo það er ekki alltaf að hafa samskipti með úrræði, en í 58 00:02:43,910 --> 00:02:45,700 sumum tilvikum gætu það. 59 00:02:45,700 --> 00:02:47,800 >> Svo þá hvað það er að fara að gera Eftir það er það að fara að 60 00:02:47,800 --> 00:02:49,430 senda til baka svar. 61 00:02:49,430 --> 00:02:53,130 Og viðbrögð fyrir þessu er einnig tilgreint með HTTP. 62 00:02:53,130 --> 00:02:54,830 Svo þá er viðskiptavinurinn getur fengið það. 63 00:02:54,830 --> 00:02:56,740 Það getur rífa það í sundur og vinna úr henni. 64 00:02:56,740 --> 00:03:00,900 Og þá þú fá á vefsíðu eins og Google eða CS50.net eða 65 00:03:00,900 --> 00:03:02,240 hvað þú fórst að. 66 00:03:02,240 --> 00:03:03,100 OK? 67 00:03:03,100 --> 00:03:06,080 >> Þannig að þetta er undirstöðu samspil sem við erum að fara að takast á við. 68 00:03:06,080 --> 00:03:08,770 Og við erum nokkurn veginn að fara að vera áherslu á þessum hluta 69 00:03:08,770 --> 00:03:10,640 samskipti, the framreiðslumaður. 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 Hver hefur einhverjar spurningar svo langt? 73 00:03:15,500 --> 00:03:17,720 OK. 74 00:03:17,720 --> 00:03:22,430 >> Svo eins og ég sagði, sem vefur framreiðslumaður fær þetta HTTP beiðni og þá gefur þetta 75 00:03:22,430 --> 00:03:24,760 HTTP svar. 76 00:03:24,760 --> 00:03:29,100 Og eins og við ræddum um áður, CS50 tæki vefur framreiðslumaður er Apache. 77 00:03:29,100 --> 00:03:32,490 Svo þegar þú krakkar vinna á P sett sjö, þú ert að fara að vinna með 78 00:03:32,490 --> 00:03:34,120 Apache vefur framreiðslumaður. 79 00:03:34,120 --> 00:03:37,890 Þú munt aldrei þurfa að virkilega að vinna með Apache beint of mikið. 80 00:03:37,890 --> 00:03:41,920 Þú stilla konar Apache smá þegar þú tilgreinir raunverulegur vélar eða 81 00:03:41,920 --> 00:03:44,970 V allsherjar, og við munum fá til að í litla bita. 82 00:03:44,970 --> 00:03:50,620 >> En í grundvallaratriðum, Apache vefur framreiðslumaður sett upp til að vinna með PHP tagi 83 00:03:50,620 --> 00:03:51,730 af út af the kassi. 84 00:03:51,730 --> 00:03:56,170 Svo hvað raunverulega gerist er að þegar þú ferð á eina af vefsíðum eins og, segjum, 85 00:03:56,170 --> 00:04:00,360 heimamaður gestgjafi slash index.php eða eitthvað, er vafrinn þinn sendir að 86 00:04:00,360 --> 00:04:04,330 beiðni, og þá Apache situr þar og tölur út að gera við það. 87 00:04:04,330 --> 00:04:08,840 Og aðgerðir er að framkvæma sem kóða í index.php og 88 00:04:08,840 --> 00:04:11,330 þá senda það burt aftur. 89 00:04:11,330 --> 00:04:15,640 Svo er það það. 90 00:04:15,640 --> 00:04:16,980 Þannig að við ræddum konar um þetta. 91 00:04:16,980 --> 00:04:21,990 Svo það gæti bara þjóna truflanir skrá eða hlaupa sumir PHP kóðann og þá gefa út 92 00:04:21,990 --> 00:04:23,510 svar. 93 00:04:23,510 --> 00:04:27,670 >> Svo þá algeng spurning sem getur komið upp er vel, hvernig eigum við að takast raunverulega 94 00:04:27,670 --> 00:04:31,750 með því að hafa marga notendur á sama tíma? 95 00:04:31,750 --> 00:04:36,930 Svo ímynda sér ef þú varst að skrifa á vefnum miðlara, ef þú had a vefur framreiðslumaður sem 96 00:04:36,930 --> 00:04:39,900 þú varst að reyna að skrifa í eitthvað eins og C eða eitthvað svoleiðis, 97 00:04:39,900 --> 00:04:45,150 í rauninni er hægt að hugsa um hvernig það gæti verið einhvers konar kóða sem 98 00:04:45,150 --> 00:04:49,330 myndi fá beiðni, en þá það þarf að gera allt þetta verk á honum. 99 00:04:49,330 --> 00:04:53,060 Það getur verið að, til dæmis, að hafa samband við gagnagrunnur eða eitthvað svoleiðis. 100 00:04:53,060 --> 00:04:53,300 Satt? 101 00:04:53,300 --> 00:04:56,010 Og þá væri ekki svona vinnslu og þá 102 00:04:56,010 --> 00:04:57,060 sendi aptr svar. 103 00:04:57,060 --> 00:04:58,950 Svo er það eins og hár stigi yfirlit. 104 00:04:58,950 --> 00:05:04,210 >> En það er ekki strax augljóst hvernig þú getur gert það þannig að tvær manneskjur eða 105 00:05:04,210 --> 00:05:09,040 jafnvel 1.000 manns gætu unnið með þinn vefþjónn á sama tíma. 106 00:05:09,040 --> 00:05:14,880 Þannig að lausninni sem Apache notar heitir þræði eða ferli. 107 00:05:14,880 --> 00:05:16,770 Svo þú gætir hafa heyrt um þessi hugtök áður. 108 00:05:16,770 --> 00:05:22,190 Það er allt í lagi ef þú hefur ekki, en bara hugsa um þræði eða ferli sem leiðir til 109 00:05:22,190 --> 00:05:26,290 stýrikerfi eða notandi forrit eða eitthvað svoleiðis eða vefþjóni 110 00:05:26,290 --> 00:05:28,810 að svoleiðis framkvæma margar hluti í einu. 111 00:05:28,810 --> 00:05:31,760 Svo þú kannt að hafa heyrt hugtakið eins inningarþræði. 112 00:05:31,760 --> 00:05:34,140 Svo það er góður af eins og þú ert konar fjölverkavinnsla. 113 00:05:34,140 --> 00:05:37,710 >> Og ef þú hefur séð á kassanum þínum fartölvu, eða eitthvað svoleiðis, 114 00:05:37,710 --> 00:05:43,040 MultiCore, hvað þú getur gert er að þú getur hlaupa tvær mismunandi þræði á mismunandi 115 00:05:43,040 --> 00:05:46,700 hlutar af CPU þannig að þeir geti í raun og veru gerast á sama tíma. 116 00:05:46,700 --> 00:05:48,100 Þannig að þetta er mjög öflugt. 117 00:05:48,100 --> 00:05:52,270 Og þetta er góður af Apache er lausn á þessu vandamáli. 118 00:05:52,270 --> 00:05:57,900 >> Svo eru góður af eins og að málum með þessari nálgun þó? 119 00:05:57,900 --> 00:05:59,870 Svo ég held ég skrifaði þá svona þar. 120 00:05:59,870 --> 00:06:03,440 En báðir konar nota mikið af minni. 121 00:06:03,440 --> 00:06:07,490 Það er mjög dýrt að búa þráður eða aðferð. 122 00:06:07,490 --> 00:06:11,750 >> Og hluti af röksemdafærslu er það bara eins og þegar þú ert að keyra C forrit 123 00:06:11,750 --> 00:06:15,090 eins helsta spýtur og þá sem kalla Annað fall, sem hefur 124 00:06:15,090 --> 00:06:16,520 einhvers konar stakkur. 125 00:06:16,520 --> 00:06:19,910 Svo þræðir þurfa einnig alveg aðskilin stakkur sem 126 00:06:19,910 --> 00:06:21,220 getur verið mjög stór. 127 00:06:21,220 --> 00:06:25,170 Og ef þú getur ímyndað þér að hafa tonn af notandi á vefsvæðið þitt, myndir þú hafa 128 00:06:25,170 --> 00:06:26,280 a einhver fjöldi af mismunandi þræði. 129 00:06:26,280 --> 00:06:28,230 Það er mikið af stafla til stjórna og viðhalda. 130 00:06:28,230 --> 00:06:31,280 Svo er það stór minni neyslu. 131 00:06:31,280 --> 00:06:35,650 >> Og þá líka, við skulum segja að þú hefur aðeins einn CPU, eða við skulum segja að þú hefur 132 00:06:35,650 --> 00:06:38,460 fleiri þræði en þú hefur þessir multicores. 133 00:06:38,460 --> 00:06:38,730 Satt? 134 00:06:38,730 --> 00:06:43,280 Svo skulum segja að þú hefðir 10 þræði og þú hefðir aðeins fimm örgjörva. 135 00:06:43,280 --> 00:06:46,260 Þú hefur konar að gera þetta þar sem þú skipt á milli núverandi 136 00:06:46,260 --> 00:06:49,090 einn sem er í gangi vegna þess að þú getur ekki keyrt alla 10 í einu. 137 00:06:49,090 --> 00:06:50,980 Og það er kallað samhengi skipta. 138 00:06:50,980 --> 00:06:54,260 Og það orð hefur í raun nokkra mismunandi samhengi, en við skulum bara 139 00:06:54,260 --> 00:06:56,620 hugsa af það eins og að skipta milli tveggja þræði. 140 00:06:56,620 --> 00:06:59,730 Það getur verið ansi dýr því grundvallaratriðum það sem þú þarft að gera er að þú 141 00:06:59,730 --> 00:07:03,340 þurfa að hætta því sem þú ert að gera, vista ástand að keyra þráður, og 142 00:07:03,340 --> 00:07:05,440 síðan yfir á eitthvað annað. 143 00:07:05,440 --> 00:07:09,420 >> Svo er allir góður af sjá hvatning hvers vegna þræði og 144 00:07:09,420 --> 00:07:12,030 ferli gæti verið svolítið fyrirferðarmikill? 145 00:07:12,030 --> 00:07:13,840 Og gerðir þú með spurningu? 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 Hver hefur einhverjar spurningar? 149 00:07:18,090 --> 00:07:19,620 OK. 150 00:07:19,620 --> 00:07:26,720 >> Þannig að ef við tökum skref aftur fyrir annað, það er góður af eins og óákveðinn greinir 151 00:07:26,720 --> 00:07:30,350 athugun sem við getum gert um a einhver fjöldi af vefur umsókn. 152 00:07:30,350 --> 00:07:34,810 Og það er í raun að mikið af þeim reyndar gera það ekki mikið gagnlegt 153 00:07:34,810 --> 00:07:37,140 vinna inni í þræði. 154 00:07:37,140 --> 00:07:41,170 Svo hefur einhver byrjað á P sett sjö yfirleitt? 155 00:07:41,170 --> 00:07:45,650 Svo viltu kannski lýsa sumir af þeim hlutum? 156 00:07:45,650 --> 00:07:47,850 Hefur þú unnið á innskráningu eða eitthvað svoleiðis? 157 00:07:47,850 --> 00:07:49,330 >> Áhorfendur: Nei 158 00:07:49,330 --> 00:07:49,780 >> KEVIN Schmid: OK. 159 00:07:49,780 --> 00:07:50,150 Aldrei hugur. 160 00:07:50,150 --> 00:07:50,900 Sorry. 161 00:07:50,900 --> 00:07:55,790 En í grundvallaratriðum, í P setja, þú ert að fara að gera mikið af konar 162 00:07:55,790 --> 00:07:59,760 fyrirspurnir til gagnagrunn til að fá smá upplýsingar úr þeim gagnabanka. 163 00:07:59,760 --> 00:08:03,330 Og hvað númerið þitt er að fara að vera að gera, hvað að Apache aðferð eða 164 00:08:03,330 --> 00:08:06,030 að Apache þráður er að fara að vera að gera en það þarf að hafa samband við 165 00:08:06,030 --> 00:08:08,990 Gagnagrunnurinn er það svoleiðis að fara að vera situr þarna og það er að fara að vera 166 00:08:08,990 --> 00:08:12,130 bíða eftir gagnagrunninum til að svara. 167 00:08:12,130 --> 00:08:16,290 >> Nú það gæti ekki hljóma það stór takast vegna þess að gagnagrunnurinn er í heimilistölvunni 168 00:08:16,290 --> 00:08:18,240 CS50 tæki, ekki satt? 169 00:08:18,240 --> 00:08:22,930 En það er einhvers konar net leynd þar því nú á vefnum 170 00:08:22,930 --> 00:08:26,830 miðlara þarf að gefa eigin beiðni sína til gagnagrunninum til að hafa samskipti við 171 00:08:26,830 --> 00:08:29,520 gagnagrunn og þá fá að upplýsingar til baka. 172 00:08:29,520 --> 00:08:33,190 Svo er nú það eins vel að bíða eftir mér, ég er að fara að fara að fá eitthvað frá 173 00:08:33,190 --> 00:08:35,770 gagnagrunn og þá er það fullt af bíða að gerast. 174 00:08:35,770 --> 00:08:36,870 Er að skynsamleg? 175 00:08:36,870 --> 00:08:38,580 >> Og fyrir sumum hlutum það er ekki svo slæmt. 176 00:08:38,580 --> 00:08:41,950 Ef það hefur bara til, til dæmis, aðgangur minni, sem er ekki eins 177 00:08:41,950 --> 00:08:44,100 hræðilegt I / O leynd. 178 00:08:44,100 --> 00:08:47,110 Og þegar ég segi, I / O leynd, hvað ég er vísa til er eins og allir góður af eins og 179 00:08:47,110 --> 00:08:48,290 inntak úttak. 180 00:08:48,290 --> 00:08:52,950 En til að fá aðgang að skrá á disknum, eins og ef ég vildi þjóna truflanir HTML 181 00:08:52,950 --> 00:08:57,850 skránni sem var á vefsíðu mína eða eitthvað svoleiðis, hef ég svona að 182 00:08:57,850 --> 00:09:02,310 hætta fyrir a hluti, lesa þessi skrá frá diskur, og þá í 183 00:09:02,310 --> 00:09:04,400 það ferli sem ég er að bíða. 184 00:09:04,400 --> 00:09:06,700 Ég ætla ekki að gera gagnlegt starf. 185 00:09:06,700 --> 00:09:11,270 >> Þetta er ekki satt um allt, en það er algengt í forritum eins og P sett 186 00:09:11,270 --> 00:09:13,960 sjö og fullt af forritum að þú sért ekki 187 00:09:13,960 --> 00:09:15,440 raun að gera mikið að hugsa. 188 00:09:15,440 --> 00:09:19,090 Og þegar ég segi að hugsa, ég meina eins computational vinnu. 189 00:09:19,090 --> 00:09:23,270 Svo computational vinna gæti verið eitthvað eins og td þú vildir 190 00:09:23,270 --> 00:09:26,590 skrifa vefþjón sem bara reiknaður ta Fibonacci númer. 191 00:09:26,590 --> 00:09:29,300 Þetta hljómar ekki eins og sérstaklega gaman vefur framreiðslumaður. 192 00:09:29,300 --> 00:09:34,220 Eins og ég myndi ekki búast við því að staður til að vera næsta Facebook, en það er einhver 193 00:09:34,220 --> 00:09:35,610 konar computational vinnu. 194 00:09:35,610 --> 00:09:39,570 >> Og þú getur ímyndað sér stað að með annars konar áhugavert 195 00:09:39,570 --> 00:09:43,070 computational vinna. 196 00:09:43,070 --> 00:09:46,050 Segjum að þú værir að skrifa eitthvað sem reiknað gráður 197 00:09:46,050 --> 00:09:49,170 aðskilnaður milli tveggja manna eða eitthvað svoleiðis. 198 00:09:49,170 --> 00:09:51,860 Svo er falið einhverju tagi sem reikningsaðferð, ekki satt? 199 00:09:51,860 --> 00:09:56,630 Og jafnvel þá, að gera það sem þú ert enn að gera a einhver fjöldi af að bíða eftir kannski 200 00:09:56,630 --> 00:09:59,550 þú þarft að fyrirspurn gagnagrunn til að líta upp hver er vinur hver eða 201 00:09:59,550 --> 00:10:00,600 eitthvað svoleiðis. 202 00:10:00,600 --> 00:10:03,510 Svo er það þannig hugmynd computational vinna. 203 00:10:03,510 --> 00:10:05,260 Er að skynsamleg? 204 00:10:05,260 --> 00:10:08,258 Hefur einhver hefur einhverjar spurningar? 205 00:10:08,258 --> 00:10:11,960 >> Ó og ég held ég setti spjallþjóna þar því spjallþjóna eru eins konar 206 00:10:11,960 --> 00:10:13,240 Annað gott dæmi um þetta. 207 00:10:13,240 --> 00:10:15,250 A spjall framreiðslumaður hefur ekki að gera mikið að hugsa. 208 00:10:15,250 --> 00:10:18,350 Það hefur bara að bíða eftir fólki til senda skilaboð og svo þegar 209 00:10:18,350 --> 00:10:19,800 þeir gera, senda þau. 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 >> Svo bara til ágrip aftur, Apache og svipað vefur framreiðslumaður eins og þessi punga A 213 00:10:28,180 --> 00:10:31,470 mikið af þræði og ferli sem geta vera eins konar eyðslusamur. 214 00:10:31,470 --> 00:10:37,530 Svo ég giska á spurningu sem kunna að koma frá því er þurfum við að hafa 215 00:10:37,530 --> 00:10:39,610 margar þræði og ferli? 216 00:10:39,610 --> 00:10:41,890 Hvað ef við hefðum bara einn? 217 00:10:41,890 --> 00:10:45,710 >> Svo skulum konar mála mynd um hvað þetta myndi líta út. 218 00:10:45,710 --> 00:10:47,810 Svo skulum nota aðeins einn þráður. 219 00:10:47,810 --> 00:10:48,660 OK? 220 00:10:48,660 --> 00:10:52,790 Svo bara ímynda sér þetta með einum þræði. 221 00:10:52,790 --> 00:10:56,600 >> Skulum gera ráð við vorum í raun ekki að gera að mikið gagnlegt - og þegar ég segi 222 00:10:56,600 --> 00:10:59,450 gagnlegur, ég meina computational vinna - 223 00:10:59,450 --> 00:11:01,130 í þeim mörgum þráðum áður. 224 00:11:01,130 --> 00:11:04,180 Svo skulum konar styrkja allt í einum þræði. 225 00:11:04,180 --> 00:11:07,780 Svo hvað ef við hefðum einn þráð svona þess bara fer um í lykkju og 226 00:11:07,780 --> 00:11:10,880 stöðugt eftirlit gerði eitthvað Ný gerast. 227 00:11:10,880 --> 00:11:15,130 Svo til dæmis, eitthvað nýtt gerst gæti þýtt að ég fékk eitthvað til baka frá 228 00:11:15,130 --> 00:11:19,310 gagnagrunninum, eða einhver sendi mér nýja HTTP beiðni. 229 00:11:19,310 --> 00:11:22,290 Þannig að þeir eru eins konar viðburði það gerast, ekki satt? 230 00:11:22,290 --> 00:11:26,130 >> Og þá hvað ég get gert þegar þeir nýju hlutir gerast er í þessu sama þræði 231 00:11:26,130 --> 00:11:30,120 af framkvæmd, þetta einn þráður af framkvæmd, get ég hringt nokkur númer sem 232 00:11:30,120 --> 00:11:32,410 myndi höndla þessi sérstakur hlutur. 233 00:11:32,410 --> 00:11:36,640 Svo td ef ég fékk eitthvað til baka úr gagnagrunninum, ég gæti keyrt minn 234 00:11:36,640 --> 00:11:40,960 lítill computational hluti af því að reyndar bara undirbýr málið til 235 00:11:40,960 --> 00:11:42,620 senda til baka til notandans. 236 00:11:42,620 --> 00:11:46,710 Svo er svona skynsamleg? 237 00:11:46,710 --> 00:11:49,940 >> En hvað er í raun afleiðingar af þessu? 238 00:11:49,940 --> 00:11:50,660 Satt? 239 00:11:50,660 --> 00:11:53,730 Vegna þess að við höfum skrifað a einhver fjöldi af kóða sem - 240 00:11:53,730 --> 00:11:58,330 og ég ætla bara að fara að stökkva á undan í skyggnur ef það er allt í lagi. 241 00:11:58,330 --> 00:12:00,930 Þannig að ef þú dont 'hugur, ég er bara að fara að taka skref til baka. 242 00:12:00,930 --> 00:12:03,410 Þannig að þetta er góður af hlutur kallast atburður lykkja. 243 00:12:03,410 --> 00:12:04,070 OK? 244 00:12:04,070 --> 00:12:07,240 Og það er góður af undirstöðu Hugmyndin á bak við Node.js. 245 00:12:07,240 --> 00:12:11,240 >> Svo hvað Node.js er í raun að gera eins og a vefur framreiðslumaður er að það er einn þráður 246 00:12:11,240 --> 00:12:14,850 sem er í grundvallaratriðum að fara í kring í lykkju eins og á meðan einn góður af samkvæmt 247 00:12:14,850 --> 00:12:18,510 að hlíf Node.js sem er stöðugt stöðva, höfum vér fengið nýja hluti? 248 00:12:18,510 --> 00:12:22,720 Og þá mun það hlaupa dýraþjálfari að þú stillir upp. 249 00:12:22,720 --> 00:12:26,720 En góð spurning að spyrja er, hvernig getum við gert þetta gerast 250 00:12:26,720 --> 00:12:28,090 með núverandi hlutum? 251 00:12:28,090 --> 00:12:32,440 >> Þannig að ég setti línu af C kóða hér að grundvallaratriðum útlit eins og það er að opna 252 00:12:32,440 --> 00:12:33,060 skrá, ekki satt? 253 00:12:33,060 --> 00:12:36,090 Ég Hún kom bara út með plötu. 254 00:12:36,090 --> 00:12:39,600 Þannig að ég þurfti að opna henni nýja skrá. 255 00:12:39,600 --> 00:12:43,810 Svo leið C númerið okkar til starfa - 256 00:12:43,810 --> 00:12:47,890 og ég held að ástæðan ég valdi skrár var því þetta er góður af því marki 257 00:12:47,890 --> 00:12:52,000 af I / O vinnu sem við höfum lagt í C í tilfinningu að það er inntak úttak. 258 00:12:52,000 --> 00:12:55,070 Þannig að við köllum þetta kóða sem er þetta F opinn. 259 00:12:55,070 --> 00:12:59,370 Og síðan á næstu línu okkar program, getum við nú að vinna með f. 260 00:12:59,370 --> 00:13:02,710 >> Þannig að þetta væri dæmi um eitthvað það er eins og samstilltur eða 261 00:13:02,710 --> 00:13:06,850 sljór vegna á þessi fyrstu línu Þar ætlum við að bíða þar til við 262 00:13:06,850 --> 00:13:08,110 fá the skrá opinn. 263 00:13:08,110 --> 00:13:12,260 Svo á annarri línu, við vitum að við er hægt að vinna með F, en þetta þýðir að 264 00:13:12,260 --> 00:13:16,240 að annarri línu getur ekki í raun að keyra þar til fyrsta línan er gert. 265 00:13:16,240 --> 00:13:17,760 Er að skynsamleg? 266 00:13:17,760 --> 00:13:20,890 >> Þannig að þetta væri slæmt að setja í atburði dýraþjálfari. 267 00:13:20,890 --> 00:13:23,920 Og ástæðan fyrir því er sú að af þessu tagi bíður, ekki satt? 268 00:13:23,920 --> 00:13:26,500 Þannig að þetta myndi snúa okkur aftur við það sama. 269 00:13:26,500 --> 00:13:29,470 Og nú við myndum ekki einu sinni hafa Ávinningur af mörgum þráðum eða 270 00:13:29,470 --> 00:13:32,390 ferli vegna þess að við fengum einn þráður í Node.js. 271 00:13:32,390 --> 00:13:35,496 Er það skynsamleg til allra? 272 00:13:35,496 --> 00:13:35,990 >> Áhorfendur: Bíddu. 273 00:13:35,990 --> 00:13:36,980 Svo er það að skipta? 274 00:13:36,980 --> 00:13:37,840 >> KEVIN Schmid: Ó, svo já. 275 00:13:37,840 --> 00:13:39,560 Þannig að ég ætla að fá að til skiptingar. 276 00:13:39,560 --> 00:13:40,430 OK. 277 00:13:40,430 --> 00:13:42,960 Svo hvað ef við þurftum eitthvað sem leit út eins og þetta? 278 00:13:42,960 --> 00:13:45,730 Svo hvað ef nú ég breytt F opna svolítið? 279 00:13:45,730 --> 00:13:48,370 Þannig að ég ætla liggur í sama tvær breytur og áður. 280 00:13:48,370 --> 00:13:52,610 Ég elska enn nýtt lag að hún kom út með. 281 00:13:52,610 --> 00:13:57,260 En ég er að brottför þriðja hlutur sem er þessi breyta kallað númer. 282 00:13:57,260 --> 00:14:02,280 >> En hvað er númer raun í þessu samhengi? 283 00:14:02,280 --> 00:14:05,360 Er það eins og venjulegur C breytu? 284 00:14:05,360 --> 00:14:06,740 Það er fall, ekki satt? 285 00:14:06,740 --> 00:14:09,450 Og það getur verið svolítið skrýtið því Ég er reyndar eins og nú liggur fyrir 286 00:14:09,450 --> 00:14:12,320 virka í annan valkost. 287 00:14:12,320 --> 00:14:14,400 >> Svo nokkra atriði í huga varðandi þetta. 288 00:14:14,400 --> 00:14:17,145 Eitt, ég er ekki í raun að hringja kóðann virka. 289 00:14:17,145 --> 00:14:20,650 Svo þú sérð ekki kóðann með vinstri paren, rétt paren. 290 00:14:20,650 --> 00:14:23,010 Ég er bara farið í kóða. 291 00:14:23,010 --> 00:14:26,990 Og í C, hvað þetta væri í raun gert er gefa mér bendi að raunveruleg 292 00:14:26,990 --> 00:14:29,740 númer, og þá er þetta gæti keyrt það. 293 00:14:29,740 --> 00:14:33,350 En bara hugsa um það sem þú ert brottför kóðann til að keyra þegar 294 00:14:33,350 --> 00:14:35,150 þessi skrá er opnuð. 295 00:14:35,150 --> 00:14:41,430 >> En hvað þýðir þetta er að nú restin af áætlun minni, sem gæti gert 296 00:14:41,430 --> 00:14:47,050 önnur efni, getur haldið áfram að gera aðra dót á meðan við, í raun ekki bíða, en 297 00:14:47,050 --> 00:14:50,890 bara í bakinu á höfuð okkar sem þegar þessi skrá er opinn, hlaupa að 298 00:14:50,890 --> 00:14:52,130 kóða efst. 299 00:14:52,130 --> 00:14:53,390 Er að skynsamleg? 300 00:14:53,390 --> 00:14:58,060 >> Og nú er hugmyndin á bak við Node.js að kóðinn í gera efni með f 301 00:14:58,060 --> 00:15:04,590 hluti ætti að vera nokkuð stutt og einföld og einfalt og í raun ekki að vera 302 00:15:04,590 --> 00:15:06,160 mjög computationally ákafur. 303 00:15:06,160 --> 00:15:09,390 Það gæti þurft að opna aðra skrá, en sem ætti einnig að vera nokkuð fljótur 304 00:15:09,390 --> 00:15:14,710 því það ætti bara að segja að gera annað f opna og þá kalla þetta annað númer. 305 00:15:14,710 --> 00:15:19,100 >> Svo bara að vera alveg ljóst, f opna sem segir nýr Katy Perry SONG 306 00:15:19,100 --> 00:15:23,060 gert mp3, það er að fara að nokkuð mikið aftur strax. 307 00:15:23,060 --> 00:15:27,820 Og þá getum við bara halda áfram að gera önnur efni vegna þess að allt sem nú f- 308 00:15:27,820 --> 00:15:33,410 opið boð gerir er að segja í grundvallaratriðum að undirliggjandi F opinn kóða opna þessa skrá 309 00:15:33,410 --> 00:15:36,020 og þegar þú ert búinn að opna þetta skrá eða þegar þú færð hana til baka, 310 00:15:36,020 --> 00:15:37,480 þá hlaupa kóðann. 311 00:15:37,480 --> 00:15:39,540 En það er ekki í raun að keyra kóðann. 312 00:15:39,540 --> 00:15:41,815 Og þú hefðir spurningu? 313 00:15:41,815 --> 00:15:46,180 >> Áhorfendur: Þú virtist gefa til kynna nokkrar sinnum að bæta computationally 314 00:15:46,180 --> 00:15:50,545 ákafur kóða konar brjóta [Inaudible] ekið kerfi. 315 00:15:50,545 --> 00:15:51,795 [Inaudible]? 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> KEVIN Schmid: Þetta er frábær spurning. 318 00:15:55,290 --> 00:15:59,280 Svo ég hef í raun dæmi um hvernig þú gætir fella computationally 319 00:15:59,280 --> 00:16:01,090 ákafur kóða í smá. 320 00:16:01,090 --> 00:16:03,620 Svo þegar við komum til kóða dæmi, Ég vera viss um að rífa þessi einn. 321 00:16:03,620 --> 00:16:04,700 Er það í lagi? 322 00:16:04,700 --> 00:16:05,950 Þakka þér. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> Hvað var nafn þitt? 325 00:16:08,750 --> 00:16:10,620 >> Áhorfendur: Aron. 326 00:16:10,620 --> 00:16:14,830 >> KEVIN Schmid: Aron koma upp mjög góður punktur, sem er að ef ég hefði 327 00:16:14,830 --> 00:16:18,560 sumir computationally ákafur kóða í að gera efni með f hluta, en afgangurinn af 328 00:16:18,560 --> 00:16:22,880 áætlun mín getur ekki keyrt og getur ekki hlustað fyrir nýja beiðnir eða neitt fyrr en allir 329 00:16:22,880 --> 00:16:24,270 þessi efni er lokið. 330 00:16:24,270 --> 00:16:27,390 Þannig að ef ég er að skrifa Hnútur kóðann almennt nema við gerum eitthvað eins og ég er að fara 331 00:16:27,390 --> 00:16:33,060 að benda síðar þegar við líta á dæmi númer, ég verð að vera viss um að 332 00:16:33,060 --> 00:16:36,060 númerið mitt ekki lagst upp Þessi atburður lykkja. 333 00:16:36,060 --> 00:16:38,120 Er að skynsamleg? 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 >> Svo Node.js býður þessa ramma sem þú getur byggja þessar atburður ekið 337 00:16:47,090 --> 00:16:48,210 netþjóna með. 338 00:16:48,210 --> 00:16:53,460 Svo það hefur svona ósamstilltur ekki sljór I / O bókasöfnum, en 339 00:16:53,460 --> 00:16:56,800 stöðluðu C bókasöfnum sem við höfum verið vinna með, eins og ef þú bara 340 00:16:56,800 --> 00:16:59,500 nota þá á sama hátt sem við höfum verið að nota þá með f opnast og 341 00:16:59,500 --> 00:17:03,000 efni, þeir eru sljór vegna þú ert í raun að bíða eftir 342 00:17:03,000 --> 00:17:04,470 þessi skrá til að opna. 343 00:17:04,470 --> 00:17:09,290 >> En Node.js gefur þér það og það grundvallaratriðum bindur inn Google V8 344 00:17:09,290 --> 00:17:14,030 JavaScript vél sem er ástæðan að Króm er svo fljótur á vinnslu 345 00:17:14,030 --> 00:17:17,040 JavaScript því það hefur þetta V8 vél. 346 00:17:17,040 --> 00:17:22,460 Þannig að ég veit að hljómar eins og einn af þeim sem WWDC verktaki ráðstefnur hlutur 347 00:17:22,460 --> 00:17:25,390 þar sem þeir henda bara fullt af því bréf tala það fyrir örgjörvum 348 00:17:25,390 --> 00:17:26,910 og segja að þetta er svo flott. 349 00:17:26,910 --> 00:17:34,200 En það er ótrúlegt að þeir gerðu þetta vegna þess að JavaScript - 350 00:17:34,200 --> 00:17:37,010 eða kannski ef þú ert ekki kunnuglegur með JavaScript enn vegna þess að við höfum ekki haft 351 00:17:37,010 --> 00:17:38,180 Fyrirlestrar á það - 352 00:17:38,180 --> 00:17:40,770 en JavaScript er túlkað tungumál. 353 00:17:40,770 --> 00:17:41,970 >> Og þetta er mikilvægt atriði líka. 354 00:17:41,970 --> 00:17:45,790 Svo það er mikilvægt fyrir vefinn okkar netþjóna til að vera fljótur, ekki satt? 355 00:17:45,790 --> 00:17:49,970 Og ef við vorum bara keyra JavaScript númer sem var túlkað með aðeins 356 00:17:49,970 --> 00:17:52,130 allir gamall túlkur að það gæti verið hægt. 357 00:17:52,130 --> 00:17:55,980 Svo Hnútur bætur frá því að hafa þetta frábær fljótur V8 túlkur. 358 00:17:55,980 --> 00:17:59,580 Og ég veit ekki hvort þeir sem heitir það vegna þess að V8 smellu í enni 359 00:17:59,580 --> 00:18:01,110 hlutur, en allt í lagi. 360 00:18:01,110 --> 00:18:07,070 >> Svo ég hef undirbúið nokkur dæmi á þessari vefslóð. 361 00:18:07,070 --> 00:18:10,490 Eftir námskeiðið, ég er svoleiðis að fara að tala um hvernig þú getur fengið Hnútur sett 362 00:18:10,490 --> 00:18:13,570 upp, en nú, ég bara svona vilja að ganga í gegnum nokkur dæmi númer. 363 00:18:13,570 --> 00:18:17,250 Svo ef þú vilt að fylgja eftir, allar Kóðinn er í boði þar. 364 00:18:17,250 --> 00:18:18,720 OK? 365 00:18:18,720 --> 00:18:22,280 >> Svo ég leyfi þessa vefslóð upp a lítill. 366 00:18:22,280 --> 00:18:24,440 Og þá er ég bara að fara að kveikja í flugstöðinni. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 Er allir góður með þessa slóð? 369 00:18:34,400 --> 00:18:37,990 Þannig að ég ætla að skipta yfir að flugstöðinni mína hér. 370 00:18:37,990 --> 00:18:42,030 >> Svo hér er kóðinn sem Ég hef í dag. 371 00:18:42,030 --> 00:18:43,960 Hvers vegna eigum við ekki að byrja með simpler.js skrá? 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 The annar hlutur er að þetta allt númer er að fara að vera skrifuð í 374 00:18:52,100 --> 00:18:56,660 JavaScript sem þú mega eða mega ekki þekki. 375 00:18:56,660 --> 00:19:00,170 Ég giska nokkra hluti er þessi a einhver fjöldi Javascript kóða er eins konar 376 00:19:00,170 --> 00:19:04,000 setningafræði og svipar því mjög til C, þannig að þú getur konar taka það upp eins og 377 00:19:04,000 --> 00:19:05,020 og þú fara eftir. 378 00:19:05,020 --> 00:19:08,750 Ég hef reynt að skrifa mikið af því byrja kóða fyrir þetta á þann hátt sem er 379 00:19:08,750 --> 00:19:11,230 svipað og C þannig að það er svolítið læsilegri. 380 00:19:11,230 --> 00:19:15,980 En eins og við vinnslu, ég vera sýna nokkrar af viðbótar 381 00:19:15,980 --> 00:19:18,980 aðgerðir JavaScript sem eru góður af kaldur. 382 00:19:18,980 --> 00:19:21,510 >> En við skulum líta á þetta sýnishorn program. 383 00:19:21,510 --> 00:19:24,820 Ég giska á allt er skorið burt þar. 384 00:19:24,820 --> 00:19:28,500 Ég ætla bara að fara að festa að Real hratt ef það er í lagi eða ekki. 385 00:19:28,500 --> 00:19:31,400 Ég veit ekki hvað þetta er að fara að gera. 386 00:19:31,400 --> 00:19:34,660 Er að lítið betra? 387 00:19:34,660 --> 00:19:36,510 Getur þú séð Var og efni? 388 00:19:36,510 --> 00:19:39,320 OK. 389 00:19:39,320 --> 00:19:44,120 >> Svo er fyrsta línan eins og JavaScript útgáfa af breytu 390 00:19:44,120 --> 00:19:44,800 yfirlýsingu. 391 00:19:44,800 --> 00:19:49,870 Svo bara að sýna hvað þetta væri líta út eins og í C. Þannig að þetta er bara eins og 392 00:19:49,870 --> 00:19:52,620 mér að segja vísitölu jafngildir þremur eða eitthvað svoleiðis. 393 00:19:52,620 --> 00:19:55,740 Svo ég gerði ekki tilgreina tegund. 394 00:19:55,740 --> 00:20:00,780 JavaScript hjartarskinn hafa gerðir, en það er mjög virk slegið í náttúrunni, svo 395 00:20:00,780 --> 00:20:02,580 ekki veita neina tegund á það. 396 00:20:02,580 --> 00:20:03,670 Svo hefur það bara var. 397 00:20:03,670 --> 00:20:05,320 Það er eins og breytu. 398 00:20:05,320 --> 00:20:05,920 OK? 399 00:20:05,920 --> 00:20:08,340 >> Og ég er að kalla þessa breytu HTTP. 400 00:20:08,340 --> 00:20:12,480 Og á hægri hönd mína, ég hef tjáning sem ég vil setja í HTTP. 401 00:20:12,480 --> 00:20:14,960 Og þetta segir krefjast HTTP. 402 00:20:14,960 --> 00:20:18,500 Þannig að þetta er góður af líkur til að fela. 403 00:20:18,500 --> 00:20:22,940 Það er a lítill fleiri eins öflugur en fela í þeim skilningi að fela 404 00:20:22,940 --> 00:20:26,100 myndi bara að afrita og líma haus skrá fyrir virka frumútgáfur eða 405 00:20:26,100 --> 00:20:27,930 hvað við gerð skilgreiningar. 406 00:20:27,930 --> 00:20:30,590 En þurfa er reyndar að fara að fá okkur kóðann. 407 00:20:30,590 --> 00:20:33,280 >> Svo þú getur hugsað það eins og flytja nokkur númer. 408 00:20:33,280 --> 00:20:37,960 Svo einhvers staðar í Node.js mát kerfi eða hvað, þeir hafa allt þetta 409 00:20:37,960 --> 00:20:40,790 HTTP framreiðslumaður númer þannig að ég er bara aðlaðandi það fyrir mína eigin 410 00:20:40,790 --> 00:20:43,130 eigin nota í þessu forriti. 411 00:20:43,130 --> 00:20:44,260 OK? 412 00:20:44,260 --> 00:20:46,930 >> Svo þá hef ég þessa aðgerð sem ég hef skrifað. 413 00:20:46,930 --> 00:20:50,330 Og eftir ég þurfti ekki að tilgreina aftur gerð eða tegund sem 414 00:20:50,330 --> 00:20:51,140 rök aftur. 415 00:20:51,140 --> 00:20:54,440 Svo konar laus slegið í þannig skilningi. 416 00:20:54,440 --> 00:20:57,290 Tvær breytur að það tekur í, beiðni og viðbrögð. 417 00:20:57,290 --> 00:21:02,080 Svo er það eðli svona eins þekki úr myndinni sem við þurftum 418 00:21:02,080 --> 00:21:05,280 á skjánum áður vegna fáum við þessa beiðni sem við 419 00:21:05,280 --> 00:21:06,410 hafa frá notandanum. 420 00:21:06,410 --> 00:21:09,170 Og þá höfum við svar sem við getum skrifað það til. 421 00:21:09,170 --> 00:21:15,060 >> Þannig að fyrsta línan í þetta virkar res.writeHead 200 og þá er þetta 422 00:21:15,060 --> 00:21:17,070 Content type texta látlaus. 423 00:21:17,070 --> 00:21:19,300 Svo skulum stykki þetta sundur smá. 424 00:21:19,300 --> 00:21:22,340 Þannig að við skulum einblína bara á res.write fyrir lítið. 425 00:21:22,340 --> 00:21:28,420 Svo er skrifað í grundvallaratriðum, og skrifa höfuð, eru bara leiðir til að raða í að skrifa út 426 00:21:28,420 --> 00:21:29,960 hlutir til svar. 427 00:21:29,960 --> 00:21:30,770 OK? 428 00:21:30,770 --> 00:21:36,230 Svo skrifa höfuð, ef einhver man frá HTTP fyrirlestur, gera þú krakkar 429 00:21:36,230 --> 00:21:39,940 muna hausum á að Efst á HTTP hlutur? 430 00:21:39,940 --> 00:21:43,580 Svo hvers vegna get ég ekki demo bara hausum raunverulegur fljótur. 431 00:21:43,580 --> 00:21:44,640 Myndi það vera gagnlegt? 432 00:21:44,640 --> 00:21:45,500 Eða ættum við bara svona - 433 00:21:45,500 --> 00:21:46,070 OK. 434 00:21:46,070 --> 00:21:46,740 Viss. 435 00:21:46,740 --> 00:21:52,340 >> Svo þegar vafrinn þinn fer á google.com eða eitthvað svoleiðis, 436 00:21:52,340 --> 00:21:54,250 there 'raunverulega a lítill fleiri - 437 00:21:54,250 --> 00:21:55,380 þetta er eins og leyndarmál - 438 00:21:55,380 --> 00:21:58,340 það er eins og a lítill fleiri upplýsingar sem kemur í gegnum pípa en bara 439 00:21:58,340 --> 00:22:00,180 litli leitar og allt. 440 00:22:00,180 --> 00:22:03,550 Svo til að sýna þér þetta, ég ætla að nota forrit sem heitir Curl. 441 00:22:03,550 --> 00:22:04,260 OK? 442 00:22:04,260 --> 00:22:08,020 Þannig að þetta er eitthvað sem þú getur keyrt á þinn Mac OSX stjórn lína eða í 443 00:22:08,020 --> 00:22:09,830 tæki eða hvað. 444 00:22:09,830 --> 00:22:17,050 Og svo ef ég Krulla HTTP google.com, Ég ætla að sjá HTML. 445 00:22:17,050 --> 00:22:21,230 Og þetta er, í sanngirni, bara HTML þessi tegund af segir til 446 00:22:21,230 --> 00:22:24,695 endurvísa www ef vafrinn þinn styður ekki sjálfkrafa annast 447 00:22:24,695 --> 00:22:27,110 utanáskrift. 448 00:22:27,110 --> 00:22:33,390 >> Svo er þetta bara HTML, en ég ætla til að bæta við Krulla þessum bandstrik ég merkja. 449 00:22:33,390 --> 00:22:33,600 OK? 450 00:22:33,600 --> 00:22:35,600 Og þetta er að fara að sýna mér haus. 451 00:22:35,600 --> 00:22:40,640 Svo er þetta einnig upplýsingar sem koma gegnum þegar ég fæ þetta svar. 452 00:22:40,640 --> 00:22:41,260 OK? 453 00:22:41,260 --> 00:22:45,320 >> Svo efst sérðu þetta HTTP 301 færa varanlega. 454 00:22:45,320 --> 00:22:49,470 Og þetta er góður af mikilvægt vegna þetta vísar til stöðukóðanum. 455 00:22:49,470 --> 00:22:53,750 Svo 301 hér er staða númer, sem er í rauninni bara heiltala 456 00:22:53,750 --> 00:22:57,750 sem segir vafranum eða hver er kominn að lesa þetta, ef þú þykjast að 457 00:22:57,750 --> 00:23:01,460 þú ert a flettitæki og þú ert að sjá þetta, grundvallaratriðum núna ef þú horfir á 458 00:23:01,460 --> 00:23:04,960 það og þú sérð 301, þú veist að ég hef að gera eitthvað sérstakt á grundvelli 459 00:23:04,960 --> 00:23:08,810 301, eða eitthvað sérstakt gerðist byggt á 301. 460 00:23:08,810 --> 00:23:12,640 Svá segir flutt til frambúðar. 461 00:23:12,640 --> 00:23:17,700 >> Og þá, í ​​grundvallaratriðum, höfum við fullt af helstu gildi pör. 462 00:23:17,700 --> 00:23:22,100 Svo fáum við staðsetninguna er www.google.com. 463 00:23:22,100 --> 00:23:25,190 Og þá konar allt þetta hitt dót, en í grundvallaratriðum, hvað staðsetningin er 464 00:23:25,190 --> 00:23:29,662 setningu er ný staðsetning er á www.google.com. 465 00:23:29,662 --> 00:23:33,800 Svo nú ef þú ferð á google.com, þú munt konar sjá vafranum konar blikka 466 00:23:33,800 --> 00:23:38,770 fyrir annað og þá sent þig strax aftur á www.google.com. 467 00:23:38,770 --> 00:23:41,840 Svo viðbrögð geta innihaldið þessi haus. 468 00:23:41,840 --> 00:23:43,330 >> Og a par af hlutum til að benda á. 469 00:23:43,330 --> 00:23:46,890 Svo skulum segja að við vorum í raun vel í heimsókn á vefsíðu. 470 00:23:46,890 --> 00:23:49,040 Svo láta mig fara til - 471 00:23:49,040 --> 00:23:51,080 hvað er góð viðbót? 472 00:23:51,080 --> 00:23:53,285 Ég er slæmur á að hugsa um gott vefsíður á staðnum. 473 00:23:53,285 --> 00:23:53,640 >> Áhorfendur: Wikipedia. 474 00:23:53,640 --> 00:23:54,160 >> KEVIN Schmid: OK. 475 00:23:54,160 --> 00:23:56,040 Gerum Wikipedia. 476 00:23:56,040 --> 00:23:58,680 Svo hér er ég var flutt. 477 00:23:58,680 --> 00:23:59,240 Ó bíddu. 478 00:23:59,240 --> 00:24:00,160 Var ég? 479 00:24:00,160 --> 00:24:00,890 Já, ég var. 480 00:24:00,890 --> 00:24:01,100 OK. 481 00:24:01,100 --> 00:24:03,005 Svo ég fékk að gera www. 482 00:24:03,005 --> 00:24:06,006 Þannig að ég ætla að gera www. 483 00:24:06,006 --> 00:24:09,680 Og eins og þú geta sjá, hér er allt að HTML að vafrinn myndi vinna 484 00:24:09,680 --> 00:24:10,910 fyrir Wikipedia. 485 00:24:10,910 --> 00:24:14,055 >> En ef ég halda fletta upp hér, það sem ég ætla að sjá á the toppur - 486 00:24:14,055 --> 00:24:17,800 vá, það er mikið af HTML á Wikipedia - 487 00:24:17,800 --> 00:24:22,550 en það sem ég get séð efst hér er þetta 200 stöðukóði öfugt við 488 00:24:22,550 --> 00:24:24,570 301 sem ég sá áðan. 489 00:24:24,570 --> 00:24:27,100 Og eftir að það hefur a ágætur vingjarnlegur OK við hliðina á henni. 490 00:24:27,100 --> 00:24:29,470 Þannig að þetta er eins og gott stöðukóðanum. 491 00:24:29,470 --> 00:24:31,160 >> Er að 200 númer líta kunnuglega? 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 Já því þegar ég gerði simpler.js, Ég skrifaði 200 þar. 494 00:24:39,880 --> 00:24:43,290 Svo það er í rauninni að segja að segja að vafra eða hver sem er að reyna að komast að 495 00:24:43,290 --> 00:24:45,440 þetta að þeir voru vel. 496 00:24:45,440 --> 00:24:49,040 Eða þannig eins og við voru vel líka. 497 00:24:49,040 --> 00:24:54,320 >> Og það er af þessu tagi sérstökum setningafræði í Javascript til að lýsa yfir 498 00:24:54,320 --> 00:24:59,870 Kort takkanna eins og efni gerð og þessi gildi eins og texta látlaus. 499 00:24:59,870 --> 00:25:03,780 Þannig að ef þú horfir á viðbrögð sem við fékk til baka frá Wikipedia áður, - 500 00:25:03,780 --> 00:25:06,200 Ég ætla að reyna að fletta upp aðeins hraðar - 501 00:25:06,200 --> 00:25:09,900 þú hefur þessa lykla eins miðlara og þessi gildi Apache. 502 00:25:09,900 --> 00:25:12,120 Svo þú hefur fengið lykla og gildi. 503 00:25:12,120 --> 00:25:15,930 Og þú getur tilgreint þetta í Hnút hvað ég á að senda til baka. 504 00:25:15,930 --> 00:25:19,380 >> Svo er þetta í raun eins konar, í sumum leiðir, og í sumum leiðum það er ekki 505 00:25:19,380 --> 00:25:23,170 í raun, en það er lítið lægri en PHP kóðann sem þú might vera 506 00:25:23,170 --> 00:25:26,980 skrifa fyrir P sett sjö vegna þess að PHP og Apache konar annast tiltekin 507 00:25:26,980 --> 00:25:28,150 af þessum hlutum fyrir þig. 508 00:25:28,150 --> 00:25:32,520 Í PHP, getur þú hefur forgang á sjálfgefið hegðun með því að skrifa eigin haus þínum. 509 00:25:32,520 --> 00:25:35,520 En að því er varðar þetta, fáum við að skrifa út eigin hausum okkar. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> Svo er þessi lína að gera skilningarvit til allir að skrifa höfuð línu? 512 00:25:41,105 --> 00:25:41,380 OK. 513 00:25:41,380 --> 00:25:42,280 Ógnvekjandi. 514 00:25:42,280 --> 00:25:45,870 >> Svo þá er það sem ég geri ég enda viðbrögð með því að segja halló heimur. 515 00:25:45,870 --> 00:25:47,040 OK. 516 00:25:47,040 --> 00:25:49,920 En það er bara fall kallað beiðni dýraþjálfari. 517 00:25:49,920 --> 00:25:53,510 Svo nú er ég í raun að eins konar gera eitthvað með þessari aðgerð, ekki satt? 518 00:25:53,510 --> 00:25:59,170 >> Svo hér það sem ég geri er það er þetta lína sem gerir margvíslegu miðlara jafn 519 00:25:59,170 --> 00:26:03,530 HTTP.create framreiðslumaður, og þá er ég fara í beiðninni dýraþjálfari. 520 00:26:03,530 --> 00:26:06,080 Svo er af þessu tagi hnút leið til að búa til miðlara. 521 00:26:06,080 --> 00:26:08,790 Og taka eftir því að ég er liggur í beiðninni dýraþjálfari. 522 00:26:08,790 --> 00:26:12,290 Þannig að þetta er að segja createServer aðgerð sem ég vil að þú að sauma mér 523 00:26:12,290 --> 00:26:16,270 miðlara, og þegar þessi miðlara fær svar, ég þarf að kalla þetta 524 00:26:16,270 --> 00:26:18,680 óska Handler virka. 525 00:26:18,680 --> 00:26:18,990 OK? 526 00:26:18,990 --> 00:26:22,290 >> Þannig að línan ansi mikið lýkur strax. 527 00:26:22,290 --> 00:26:28,780 Svo var framreiðslumaður lína er gert á réttan hátt eftir að þú gerir það ansi mikið. 528 00:26:28,780 --> 00:26:31,770 Ég meina, það hefur til að setja upp einhver innri ástand að vita að þú þyrftir að 529 00:26:31,770 --> 00:26:35,400 hringja í þessi beiðni Handler virka, en það er ekki að fara að sitja þarna og 530 00:26:35,400 --> 00:26:37,730 segjum hefur notandi sendi mig beiðni ennþá? 531 00:26:37,730 --> 00:26:39,270 Hefur notandinn sendi mér beiðni enn? 532 00:26:39,270 --> 00:26:40,780 Svo það er ekki loka. 533 00:26:40,780 --> 00:26:41,650 OK? 534 00:26:41,650 --> 00:26:46,120 >> Svo er það þetta mun gera er það í rauninni nú geymir bendi á þessa kóða, 535 00:26:46,120 --> 00:26:49,670 Þessi beiðni dýraþjálfari virka, og þá mun keyra kóðann þegar einhver 536 00:26:49,670 --> 00:26:52,170 gerir beiðni. 537 00:26:52,170 --> 00:26:54,120 Og þá gerum server.listen. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> The 1337 er nokkuð handahófskennt. 540 00:26:59,960 --> 00:27:02,285 Ég hafði enga sérstaka ástæðu til þess að tína þeim fjölda. 541 00:27:02,285 --> 00:27:03,860 Það var algjörlega af handahófi. 542 00:27:03,860 --> 00:27:07,010 En það bara skilgreinir höfn. 543 00:27:07,010 --> 00:27:10,640 Svo vefur framreiðslumaður þú munt sjá að þeir nota höfn 80 vegna þess að það er góður 544 00:27:10,640 --> 00:27:11,810 af eins samningsins. 545 00:27:11,810 --> 00:27:16,170 Þannig að ef ég fer í eitthvað eins og, Ég veit ekki, Wikipedia.org, 546 00:27:16,170 --> 00:27:17,700 og ég setti ristill 8 - 547 00:27:17,700 --> 00:27:18,610 ó vá, þú getur ekki séð það. 548 00:27:18,610 --> 00:27:19,370 Fyrirgefðu. 549 00:27:19,370 --> 00:27:21,820 En ef ég vinn Wikipedia - 550 00:27:21,820 --> 00:27:24,810 Ég skrifa það hér bara svo að það er ljóst á myndavélinni. 551 00:27:24,810 --> 00:27:29,150 En ef ég tek þetta í vafra með tvípunktur 80, sem skilgreinir fara til 552 00:27:29,150 --> 00:27:31,430 Wikipedia.org á höfn 80. 553 00:27:31,430 --> 00:27:36,200 Svo er það eins og hvernig Bandaríkin hafa margar hafnir eins og hvar þú getur skip 554 00:27:36,200 --> 00:27:37,440 Hlutur til hvers konar. 555 00:27:37,440 --> 00:27:40,730 Svo er það eins og að fara á þetta tiltekna setja á þessum vefþjóni. 556 00:27:40,730 --> 00:27:40,990 OK. 557 00:27:40,990 --> 00:27:45,730 >> Svo ég valdi bara 1337. 558 00:27:45,730 --> 00:27:47,910 There 'a heild svið af tölum sem þú getur valið. 559 00:27:47,910 --> 00:27:50,390 Það var ekki alveg sérstakt. 560 00:27:50,390 --> 00:27:54,560 >> En það sem ég ætla að gera núna er ég að fara að keyra hnút. 561 00:27:54,560 --> 00:27:59,730 Leyfðu mér að koma inn í raun að nokkrum línur niður þannig að þú getur séð það. 562 00:27:59,730 --> 00:28:03,130 Ég ætla að gera hnút, og ég er að fara að keyra simpler.js. 563 00:28:03,130 --> 00:28:06,880 Og við munum tala um hvernig á að fá Hnút sett upp í smá. 564 00:28:06,880 --> 00:28:09,350 En nú er það bara að keyra miðlara. 565 00:28:09,350 --> 00:28:14,360 >> Svo einn hlutur sem við getum reynt sem kunna ekki vera að spennandi er að við getum í raun 566 00:28:14,360 --> 00:28:16,300 reyna að opna hann í Curl. 567 00:28:16,300 --> 00:28:20,680 Svo ég get gert Curl, og mín vél er heimamaður gestgjafi. 568 00:28:20,680 --> 00:28:24,600 Þú munt einnig sjá þetta skrifað svona stundum. 569 00:28:24,600 --> 00:28:29,810 Heimamaður gestgjafi og 127.0.0.1 eru konar af eins tölvunni heima. 570 00:28:29,810 --> 00:28:33,180 Svo er það eins og að tala við í tölvunni þinni. 571 00:28:33,180 --> 00:28:33,760 OK. 572 00:28:33,760 --> 00:28:36,030 >> Og þá get ég sagt 1337. 573 00:28:36,030 --> 00:28:39,630 Þannig að ef ég keyrt þessa línu af kóða, það segir halló heimur. 574 00:28:39,630 --> 00:28:44,050 Og ef ég vildi sjá þessi efni sem hafði efni gerð texta látlaus eða 575 00:28:44,050 --> 00:28:46,560 hvað, ég gæti jafnvel setja þetta hér. 576 00:28:46,560 --> 00:28:48,810 Og taka eftir því að það er að segja OK. 577 00:28:48,810 --> 00:28:50,810 Og ég hef texta látlaus. 578 00:28:50,810 --> 00:28:53,140 Og þá er það góður af öllu þessu hinn efni sem Hnútur mun bæta í 579 00:28:53,140 --> 00:28:54,440 þar fyrir mig. 580 00:28:54,440 --> 00:28:55,700 Það er ekki frábær mikilvægt. 581 00:28:55,700 --> 00:28:58,230 >> Ég meina, það eru einhvers konar tæknileg þættir á þeim eru eins konar 582 00:28:58,230 --> 00:29:02,280 af kaldur að tala um, en bara til að sýna þú, ég hef líka vald til að 583 00:29:02,280 --> 00:29:03,070 breyta þessir í kring. 584 00:29:03,070 --> 00:29:06,280 Svo ég get bara að bæta við fullt af eitthvað svoleiðis. 585 00:29:06,280 --> 00:29:11,780 Og þá nú, ef ég horfi á mína framleiðsla, það mun vera það. 586 00:29:11,780 --> 00:29:19,740 Svo þessi haus meina ákveðna hluti að vafra og hlutum eins og þessi. 587 00:29:19,740 --> 00:29:23,040 >> Og hausum getur í rauninni að segja að vafra hvernig á að bregðast við eitthvað. 588 00:29:23,040 --> 00:29:26,280 Ef þú hefur einhvern tíma heyrt af smákökum áður, eða ef þú hefur einhvern tíma verið pirruð 589 00:29:26,280 --> 00:29:29,330 með vefsíðu stilling kex, eða kveikt á kex blokk eða 590 00:29:29,330 --> 00:29:30,320 eitthvað svoleiðis. 591 00:29:30,320 --> 00:29:33,040 Þú getur í raun sett smákökur í þessum hausum. 592 00:29:33,040 --> 00:29:36,990 Svo þeir segja vafranum hvernig á að hegðun í sumum tilfellum. 593 00:29:36,990 --> 00:29:37,750 OK. 594 00:29:37,750 --> 00:29:40,310 >> Svo sem var simpler.js. 595 00:29:40,310 --> 00:29:42,780 Hefur einhver hefur einhverjar spurningar á þeim frumkóða skrá? 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 >> Svo skulum við fjarlægja the r frá því og líta á simple.js. 600 00:29:50,780 --> 00:29:53,010 Þannig að þetta er ansi mikið sama program. 601 00:29:53,010 --> 00:29:56,030 Ég skrifaði það bara svolítið öðruvísi vegna þess að ég vildi að svoleiðis hápunktur 602 00:29:56,030 --> 00:29:57,850 Sumar aðgerðir JavaScript. 603 00:29:57,850 --> 00:30:03,880 >> Svo eftir því að beiðnin dýraþjálfari fall hefur algjörlega horfið. 604 00:30:03,880 --> 00:30:05,800 Ó Já, varstu með spurningu? 605 00:30:05,800 --> 00:30:08,200 >> Áhorfendur: Já, rökin sem eru liðin sem 606 00:30:08,200 --> 00:30:10,120 virka, hvað eru þeir? 607 00:30:10,120 --> 00:30:12,050 >> KEVIN Schmid: Svo þeir eru JavaScript hlutum. 608 00:30:12,050 --> 00:30:15,230 Í Node.js skjöl, það grundvallaratriðum segir hvaða aðferðir eru 609 00:30:15,230 --> 00:30:15,910 boði á þeim. 610 00:30:15,910 --> 00:30:19,602 Við verður bara að hafa aðgang að Þessi aðferð kallast skrifa höfuð og endir 611 00:30:19,602 --> 00:30:20,730 og eitthvað svoleiðis. 612 00:30:20,730 --> 00:30:22,590 En það er allt fullt fleiri aðferðir. 613 00:30:22,590 --> 00:30:27,670 >> Og til dæmis, eins og einn af þeim einkum á Rec, getur þú gert 614 00:30:27,670 --> 00:30:34,540 eitthvað eins rec.method sem mun segja þér hvort það er HTTP fá eða 615 00:30:34,540 --> 00:30:36,780 HTTP POST beiðnir og svoleidis. 616 00:30:36,780 --> 00:30:39,100 Þannig að það er alls konar mismunandi eiginleika, en þeir eru báðir 617 00:30:39,100 --> 00:30:42,560 JavaScript hlutum, og þeir hafa bara aðgerðir sem fylgir þeim sem þú 618 00:30:42,560 --> 00:30:43,850 geta skrifað það til. 619 00:30:43,850 --> 00:30:45,520 OK? 620 00:30:45,520 --> 00:30:49,030 >> Svo taka að beiðni dýraþjálfari er algerlega búinn. 621 00:30:49,030 --> 00:30:52,650 En númerið sem ég hafði í beiðni stjórnandinn er enn þar. 622 00:30:52,650 --> 00:30:56,520 Ég hef enn þessa res.writeHead og ég hef enn þessa res.end. 623 00:30:56,520 --> 00:31:00,270 Og hvað þetta er dæmi um í JavaScript er þessi hugmynd um að 624 00:31:00,270 --> 00:31:01,460 nafnlaus virka. 625 00:31:01,460 --> 00:31:04,180 og nafnlaus er eins mátun nafn fyrir það vegna þess að það gerir bókstaflega ekki 626 00:31:04,180 --> 00:31:05,180 hafa nafn. 627 00:31:05,180 --> 00:31:07,900 Það er engin aðgerð beiðni stjórnandinn í það. 628 00:31:07,900 --> 00:31:10,110 >> Hefur ekkert nafn, en það er enn er að taka rifrildi. 629 00:31:10,110 --> 00:31:12,250 Þannig að ég fékk samt rec og Res. 630 00:31:12,250 --> 00:31:16,180 Og ég hef enn kóðann. 631 00:31:16,180 --> 00:31:18,930 Þetta er fullkomlega í lagi JavaScript kóða. 632 00:31:18,930 --> 00:31:22,540 Svo ég að lýsa yfir virka án sérstaklega að gefa honum nafn. 633 00:31:22,540 --> 00:31:24,250 Það er svolítið ruglingslegt í fyrstu. 634 00:31:24,250 --> 00:31:26,230 There ert sumir eins gagnleg atriði sem þú getur gert með 635 00:31:26,230 --> 00:31:28,450 þessi nafnlaus föll. 636 00:31:28,450 --> 00:31:32,100 Hefur einhver hefur einhverjar spurningar um þetta, eða er það í lagi bara að nú, 637 00:31:32,100 --> 00:31:34,130 konar bara viðurkenna að það mun gera það sama? 638 00:31:34,130 --> 00:31:36,700 639 00:31:36,700 --> 00:31:37,125 Yep? 640 00:31:37,125 --> 00:31:38,680 >> Áhorfendur: Eru aðgerðir fyrst bekk í JavaScript? 641 00:31:38,680 --> 00:31:41,020 >> KEVIN Schmid: Þeir eru fyrst bekk í JavaScript. 642 00:31:41,020 --> 00:31:45,490 Og bara veit að þessi hugtök brottför í nafnlaus virka eins 643 00:31:45,490 --> 00:31:49,600 þetta gilda um JavaScript sem þú geta skrifað í síðasta verkefni fyrir 644 00:31:49,600 --> 00:31:51,260 netvafrinn líka. 645 00:31:51,260 --> 00:31:56,700 Svo til dæmis, í JavaScript í Vafrinn þinn er það líka nokkuð atburður 646 00:31:56,700 --> 00:32:00,680 ekið í þeim skilningi að það sem þú munt hafa er þegar notandinn smellir þetta 647 00:32:00,680 --> 00:32:02,640 hnappinn, ég vil að þú að keyra þennan kóða. 648 00:32:02,640 --> 00:32:07,070 >> Svo er það sams konar hugmyndum um viðskiptavinur hlið þegar mús smellur eða þeir 649 00:32:07,070 --> 00:32:09,870 mús yfir einhverjum myndina á þinn vefsíða, keyra þessa kóða. 650 00:32:09,870 --> 00:32:11,350 Sem geta sótt um að netþjónum. 651 00:32:11,350 --> 00:32:16,380 Svo það er góður af eins og spennandi ástæðan JavaScript er mjög 652 00:32:16,380 --> 00:32:19,810 hæfi eða sumir fólk hugsa það er hentugur tungumál fyrir þessa tegund af 653 00:32:19,810 --> 00:32:22,530 atburður bílstjóri miðlara vegna þess að þú ert þessi nafnlaus föll. 654 00:32:22,530 --> 00:32:26,150 Þú hefur allt hugmynd um þetta ósamstilltur kóða. 655 00:32:26,150 --> 00:32:27,060 OK. 656 00:32:27,060 --> 00:32:30,360 Hver hefur einhverjar spurningar? 657 00:32:30,360 --> 00:32:30,470 >> OK. 658 00:32:30,470 --> 00:32:33,440 Svo sem var simple.js. 659 00:32:33,440 --> 00:32:38,070 Svo skulum líta á eitt eða par fleiri. 660 00:32:38,070 --> 00:32:42,040 Svo er þetta sleep.js. 661 00:32:42,040 --> 00:32:47,160 Svo er einhver kunnugur C virka sofa? 662 00:32:47,160 --> 00:32:50,936 Frá kannski einni af fyrri fyrirlestrum eða eitthvað svoleiðis? 663 00:32:50,936 --> 00:32:54,650 >> Svo í rauninni þú geta fara framhjá í held ég fjöldi sekúndna eða ef þú ert að nota U 664 00:32:54,650 --> 00:32:57,080 sofa fjölda millisekúndur eða nanoseconds. 665 00:32:57,080 --> 00:33:00,450 Og í rauninni mun forritið bara að hætta gangi fyrir þessi magn af tími. 666 00:33:00,450 --> 00:33:01,280 Satt? 667 00:33:01,280 --> 00:33:06,970 Og þá mun það vakna á endanum og þá verður bara að halda áfram að keyra 668 00:33:06,970 --> 00:33:08,340 forritið. 669 00:33:08,340 --> 00:33:12,740 >> Þannig að þetta miðlara konar gefur far af svefn. 670 00:33:12,740 --> 00:33:17,580 Svo eftir að við höfum sömu res.writeHead 200 með fyrirsögninni 671 00:33:17,580 --> 00:33:22,130 áður, en þá erum við að kalla þetta fall sem kallast setja tími. 672 00:33:22,130 --> 00:33:26,170 Setja tími er einnig í boði í þinn vefur flettitæki Google Króm 673 00:33:26,170 --> 00:33:28,000 eða Safari eða hvað. 674 00:33:28,000 --> 00:33:31,720 Og í rauninni hvað það er að gera hér er það tekur í aðgerð. 675 00:33:31,720 --> 00:33:33,360 Fyrirvara, aftur, það er nafnlaus virka. 676 00:33:33,360 --> 00:33:36,310 Svo það er góður af kaldur vegna þess að við erum nota nafnlaus virka innan 677 00:33:36,310 --> 00:33:38,950 nafnlaus virka sem getur verið svolítið undarlegt. 678 00:33:38,950 --> 00:33:42,270 >> En það tekur að virka, sem er í rauninni að segja - og hvernig þetta 679 00:33:42,270 --> 00:33:47,430 verk er í 5000 millisekúndur, ég vil þér að framkvæma að virka sem 680 00:33:47,430 --> 00:33:50,830 bara endar svar og skrifar hey. 681 00:33:50,830 --> 00:33:56,730 Svo gefur þetta til kynna að eins sofa, en hvernig þetta í raun 682 00:33:56,730 --> 00:33:59,780 virkar er að við munum keyra í gegnum Þessi lína mjög fljótt. 683 00:33:59,780 --> 00:34:01,190 Við erum bara að skrifa eitthvað. 684 00:34:01,190 --> 00:34:03,780 Og þá munum við líka keyrt í gegnum Þessi lína mjög fljótt. 685 00:34:03,780 --> 00:34:08,620 Þannig að við erum í raun ekki að fara að bíða í fimm sekúndur. 686 00:34:08,620 --> 00:34:11,370 Við erum bara að fara að keyra þetta númer í stað. 687 00:34:11,370 --> 00:34:14,219 >> Og þá er það, aftur, þetta litla atburður lykkja sem nú hefur slíkt 688 00:34:14,219 --> 00:34:17,570 skráir sem í rauninni er bara stöðugt að fara í kring í hring 689 00:34:17,570 --> 00:34:21,620 og horfa á klukkuna í einu þráður og orðatiltæki, hefur fimm sekúndur 690 00:34:21,620 --> 00:34:22,360 liðin enn? 691 00:34:22,360 --> 00:34:26,409 Og svo þegar það sér að annar hönd hefur flutt eins og fimm sekúndur eða 692 00:34:26,409 --> 00:34:29,190 hvað, þá vaknar það upp og segir, ó, hvað á ég að gera? 693 00:34:29,190 --> 00:34:30,350 Oh ég þarf að keyra þennan kóða. 694 00:34:30,350 --> 00:34:33,110 Og þá það er að fara að hlaupa res.end hey. 695 00:34:33,110 --> 00:34:35,360 >> Svo aftur, erum við aldrei að bíða hér. 696 00:34:35,360 --> 00:34:38,590 Svo það er ekki að þetta númer innan þessi aðgerð er að fara að taka fimm 697 00:34:38,590 --> 00:34:39,900 sekúndur til að keyra. 698 00:34:39,900 --> 00:34:43,090 Þessi kóði mun keyra ansi mikið samstundis, að minnsta kosti í samanburði við 699 00:34:43,090 --> 00:34:46,139 fimm sekúndur sem við vorum að tala um áðan áður. 700 00:34:46,139 --> 00:34:52,100 >> Svo bara að sýna þetta í aðgerð, Ég get gert Node.sleep.js. 701 00:34:52,100 --> 00:34:55,159 Og gerði ég skipta upp eitthvað? 702 00:34:55,159 --> 00:34:56,310 Hugsanlega. 703 00:34:56,310 --> 00:34:57,410 Sorry. 704 00:34:57,410 --> 00:34:59,530 Við skulum sjá hvað við getum gert til að laga þetta. 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 Svo ákveðið að nota Node.js. 709 00:35:17,464 --> 00:35:19,440 Ég ætla bara að grínast. 710 00:35:19,440 --> 00:35:19,570 OK. 711 00:35:19,570 --> 00:35:20,820 Bara eitt 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 Ég veit hvað það er. 715 00:35:29,130 --> 00:35:34,440 >> Svo er málið að í öðrum flipa minn hér, ég var að keyra Hnútur þegar á 716 00:35:34,440 --> 00:35:36,590 sama heimilisfang, 1337. 717 00:35:36,590 --> 00:35:43,370 Svo villa að þetta kastaði, ef við lítum á það alvöru náið, er heimilisfang í 718 00:35:43,370 --> 00:35:45,180 nota, EADDRINUSE. 719 00:35:45,180 --> 00:35:47,970 Þannig að ég var nú þegar að nota 1337 hér. 720 00:35:47,970 --> 00:35:52,210 Þannig að ef ég lokaði þetta burt, og þá er ég nú reyna að keyra þetta, vonandi, allt 721 00:35:52,210 --> 00:35:53,210 verður allt í lagi. 722 00:35:53,210 --> 00:35:53,440 OK. 723 00:35:53,440 --> 00:35:57,020 Svo þú getur aðeins hafa eitt konar af að hlusta á höfn í einu. 724 00:35:57,020 --> 00:35:59,660 Önnur lausn hefði verið fyrir mig bara breyta þeirri áætlun og gera 725 00:35:59,660 --> 00:36:02,370 það vera eins og 1338 eða eitthvað svona. 726 00:36:02,370 --> 00:36:04,100 >> En nú sofa er í gangi. 727 00:36:04,100 --> 00:36:06,400 Svo skulum reyna í raun það út í Vafrinn að þessu sinni þar sem það er 728 00:36:06,400 --> 00:36:09,080 lítið unexciting að sjá það í flugstöðinni. 729 00:36:09,080 --> 00:36:13,560 Þannig að ég ætla bara að fara til að 127 heimilisfang aftur á 1337. 730 00:36:13,560 --> 00:36:14,850 Og ef þú getur séð það - 731 00:36:14,850 --> 00:36:18,050 Ég veit ekki hvort þú getur - en minn Vafrinn tekur mjög, mjög lengi 732 00:36:18,050 --> 00:36:20,600 tími til að hlaða eða eins og fimm sekúndur. 733 00:36:20,600 --> 00:36:23,460 >> Og síðan eftir það, að lokum það endaði svar. 734 00:36:23,460 --> 00:36:29,070 Og þú getur ekki séð það vegna þess að hlutur er færður yfir lítið, en ef ég geri 735 00:36:29,070 --> 00:36:32,500 þetta lítið minni, þú getur séð það segir hey. 736 00:36:32,500 --> 00:36:35,130 Þannig að ég fékk að hey, en eftir fimm sekúndur. 737 00:36:35,130 --> 00:36:38,510 Og það gæti verið smá hreinni að sjá það hér á flugstöðinni, þannig að ég er 738 00:36:38,510 --> 00:36:40,980 að fara að gera - 739 00:36:40,980 --> 00:36:43,540 skulum gera hér - 740 00:36:43,540 --> 00:36:48,370 skulum gera Curl þetta netfang aftur með 1337. 741 00:36:48,370 --> 00:36:50,820 Og ég bara svona að sitja hér í fimm sekúndur. 742 00:36:50,820 --> 00:36:53,760 En taka eftir þessi the framreiðslumaður getur samþykkt ný viðbrögð. 743 00:36:53,760 --> 00:36:54,940 Svo það prentar hey. 744 00:36:54,940 --> 00:36:58,720 >> Og að kynningu þessa, í grundvallaratriðum það Ég get gert í þessu öðrum flipa - 745 00:36:58,720 --> 00:37:02,640 þannig að við skulum segja að ég gera þetta í öðrum flipa, Ég ætla að gera Curl og sama 746 00:37:02,640 --> 00:37:03,780 hlutur aftur. 747 00:37:03,780 --> 00:37:06,600 Og ég ætla að reyna að sparka þeim krakkar burt á sama tíma. 748 00:37:06,600 --> 00:37:08,260 Þannig að ég ætla að gera þetta, og ég er fara að kapp hérna og ég er 749 00:37:08,260 --> 00:37:09,650 að fara að gera það aftur. 750 00:37:09,650 --> 00:37:14,030 >> Og við skulum gera það þannig að þú getur séð þau bæði. 751 00:37:14,030 --> 00:37:20,250 Það eitt prentuð hey og að einn prentuð hey alla leið - 752 00:37:20,250 --> 00:37:22,550 við skulum gera þá tilraun aftur. 753 00:37:22,550 --> 00:37:25,100 Reyndar, við skulum nota þetta bragð, ef það er í lagi. 754 00:37:25,100 --> 00:37:30,520 >> Þannig að ég ætla að nota skel hlutur sem leyfir mér að í grundvallaratriðum að keyra tvö eintök 755 00:37:30,520 --> 00:37:32,630 þessarar áætlunar í samhliða. 756 00:37:32,630 --> 00:37:36,070 Svo það verður keyrt fyrsta forritið og Annað forrit á samfelldan hátt. 757 00:37:36,070 --> 00:37:39,060 Svo nú ef ég ýta á Enter, það er að fara að gera að beiðni ansi mikið 758 00:37:39,060 --> 00:37:40,570 samstundis á sama tíma. 759 00:37:40,570 --> 00:37:42,620 Svo skulum gefa þetta skot. 760 00:37:42,620 --> 00:37:44,950 >> Svo nú eftir það segir tvo ferla. 761 00:37:44,950 --> 00:37:50,630 Og ef þú ert forvitinn, að 27.000 tala er sú aðferð ID. 762 00:37:50,630 --> 00:37:52,940 Og þá taka þeir prenta hey á sama tíma. 763 00:37:52,940 --> 00:37:56,820 Það var ekki eins og við þurftum að bíða í fimm sekúndur fyrir eitt og þá eftir það, 764 00:37:56,820 --> 00:37:59,640 fimm sekúndum síðar fá sekúndu. 765 00:37:59,640 --> 00:38:03,300 Svo er góður af, í sumu leyti, það er að raun ekki sönnun, en það er 766 00:38:03,300 --> 00:38:07,390 leiðandi sönnun þess að það er ekki bara eins og að bíða í fimm sekúndur og sljór 767 00:38:07,390 --> 00:38:08,960 allan þráðinn. 768 00:38:08,960 --> 00:38:10,720 OK flott. 769 00:38:10,720 --> 00:38:17,850 >> Aron spurði spurningu áðan að var vel hvað ef við gerum eitthvað - 770 00:38:17,850 --> 00:38:18,735 Yep? 771 00:38:18,735 --> 00:38:19,051 >> Áhorfendur: Bíddu. 772 00:38:19,051 --> 00:38:21,585 Hvernig er það öðruvísi printf biðminni, þó? 773 00:38:21,585 --> 00:38:23,010 Er það ekki sjálfkrafa að? 774 00:38:23,010 --> 00:38:25,390 Hvers vegna eigum við að hafa áhyggjur óður í það? 775 00:38:25,390 --> 00:38:26,555 >> KEVIN Schmid: Oh, gastu segja það einu sinni enn? 776 00:38:26,555 --> 00:38:29,510 >> Áhorfendur: Er ekki eins printf biðminni gera nákvæmlega það sama? 777 00:38:29,510 --> 00:38:31,280 >> KEVIN Schmid: The printf biðminni? 778 00:38:31,280 --> 00:38:32,753 >> Áhorfendur: Já. 779 00:38:32,753 --> 00:38:33,244 OK. 780 00:38:33,244 --> 00:38:40,609 Var ekki í einu af Skyndipróf þeir voru tala um hvernig ef þú hægri printf 781 00:38:40,609 --> 00:38:42,899 eitthvað og þá hafa það hlé einn annað, og þá að hafa það lykkju tíu 782 00:38:42,899 --> 00:38:46,530 sinnum, verður það að bíða í tíu sekúndur og þá printf allt saman? 783 00:38:46,530 --> 00:38:47,460 >> KEVIN Schmid: Oh, OK. 784 00:38:47,460 --> 00:38:49,170 >> Áhorfendur: Er það að gera hið sama hlutur þá í þessu tilfelli? 785 00:38:49,170 --> 00:38:52,630 >> KEVIN Schmid: Svo spurningin var grundvallaratriðum í einu af fyrrum Skyndipróf 786 00:38:52,630 --> 00:38:57,200 eða eitthvað, það var spurning sem í rauninni ef þú segir Prenta f 10 787 00:38:57,200 --> 00:39:01,490 hluti í einu og þá svaf eins og í ferlið við prentun þá út, 788 00:39:01,490 --> 00:39:04,850 í lok fyrir sumir ástæða, það vildi bara hent þeim öllum út á skjánum. 789 00:39:04,850 --> 00:39:06,740 Þannig að það er góður af tveimur mismunandi hugmyndir hér. 790 00:39:06,740 --> 00:39:10,400 >> Svo ég giska á einn hlutur er þessi, í þessu ræða, við erum að fást við tvö mismunandi 791 00:39:10,400 --> 00:39:13,510 konar fólk að biðja miðlara fyrir hluti á sama tíma. 792 00:39:13,510 --> 00:39:17,455 Og ástæða þess að printf konar bíður svona og hugarangur það allt út 793 00:39:17,455 --> 00:39:21,760 í einu er skyldari hvernig printf konar - 794 00:39:21,760 --> 00:39:25,100 svo leið printf er í raun framkvæmda er það hefur í rauninni að 795 00:39:25,100 --> 00:39:28,850 tala við the stýrikerfi til að skrifa þessi efni í vélinni. 796 00:39:28,850 --> 00:39:33,460 Svo það þarf ekki að gera allt sem efni strax þegar þú segir printf 797 00:39:33,460 --> 00:39:36,260 einhver strengur því sem gæti fá dýr ef það þarf að 798 00:39:36,260 --> 00:39:37,340 að gera það í hvert skipti. 799 00:39:37,340 --> 00:39:41,530 >> Svo ef þú gerir printf hey, program gæti ekki í raun prenta það 800 00:39:41,530 --> 00:39:43,040 strax á vélinni. 801 00:39:43,040 --> 00:39:46,080 Það gæti sagt, OK, ég skrifaði það. 802 00:39:46,080 --> 00:39:49,570 Og þá konar bíða eftir þér að gefa það svolítið meira áður en þeir 803 00:39:49,570 --> 00:39:51,380 skrifa það út að vélinni. 804 00:39:51,380 --> 00:39:54,040 >> Svo ástæðan fyrir því að það var málið - 805 00:39:54,040 --> 00:39:56,450 og það er góður af ótengd við svefn - 806 00:39:56,450 --> 00:40:00,060 er að sofa var eins konar bara sprautað í það að sýna fram á 807 00:40:00,060 --> 00:40:02,480 staðreynd að það er ekki skrifað það í réttri röð. 808 00:40:02,480 --> 00:40:06,210 En ástæðan fyrir því er bara árangur svo að þú þarft ekki að 809 00:40:06,210 --> 00:40:08,920 gert að margir tengiliði stýrikerfi. 810 00:40:08,920 --> 00:40:12,300 >> En hér, hvað við erum í raun að reyna að gera með þessum svefni hlutur er bara sýning 811 00:40:12,300 --> 00:40:17,730 að þegar við höfum tvær fólk í heimsókn þetta vefsvæði, það er ekki að fara að setja 812 00:40:17,730 --> 00:40:22,310 þá í línu þar sem það er að fara að segja Ég verð að hjálpa þér, og svo þegar ég er 813 00:40:22,310 --> 00:40:25,350 alveg búinn að hjálpa þér eftir þetta fimm sekúndur, þá ætla ég að 814 00:40:25,350 --> 00:40:26,750 færa inn á næsta mann. 815 00:40:26,750 --> 00:40:29,515 Óska fyrsta manneskjan stendur sig ekki binda upp þessi atburður lykkju 816 00:40:29,515 --> 00:40:31,610 ef það er vit í. 817 00:40:31,610 --> 00:40:34,980 >> En hér er í raun dæmi um eitthvað sem mun binda 818 00:40:34,980 --> 00:40:36,090 upp atburði lykkju. 819 00:40:36,090 --> 00:40:39,130 Svo hér er hræðilegt hlutverk að reikna tu Fibonacci. 820 00:40:39,130 --> 00:40:43,510 Það er bókstaflega verra vegur þú geta reikna tu Fibonacci töluna. 821 00:40:43,510 --> 00:40:48,480 Og þetta er í raun bara að viðurkenna þar sem þetta kom frá, 822 00:40:48,480 --> 00:40:49,330 there 'raunverulega - 823 00:40:49,330 --> 00:40:53,230 Ég meina, þú geta reyna að fara að finna það - en það er eins og a mjög langur blogg 824 00:40:53,230 --> 00:40:54,130 staða að einhver skrifaði. 825 00:40:54,130 --> 00:40:55,660 Það er eins og einn af þeim Rauðleitur hlutur. 826 00:40:55,660 --> 00:40:59,650 En einhver gagnrýndi Node.js, og þeir nota þetta sem dæmi. 827 00:40:59,650 --> 00:41:03,700 Svo ég vildi svona bara að sýna þér tvo mismunandi sjónarmið bara til að fá 828 00:41:03,700 --> 00:41:07,320 almennan skilning á þeim hugtökum bak þessum tveimur hlutum. 829 00:41:07,320 --> 00:41:13,050 >> En þetta er valið sem bara hræðilegt, hryllilegur óhagkvæm computationally 830 00:41:13,050 --> 00:41:15,940 ákafur leið til að reikna NTH Fibonacci númer. 831 00:41:15,940 --> 00:41:21,180 Svo bara eins og a hlið minnispunktur, hvers vegna er það hræðilegt eins og á einhvern hátt? 832 00:41:21,180 --> 00:41:23,210 Yep? 833 00:41:23,210 --> 00:41:25,130 >> Áhorfendur: Segjum að þú byrjar út með 1000. 834 00:41:25,130 --> 00:41:27,050 1000 kljúfa í 999. og 998. 835 00:41:27,050 --> 00:41:28,970 Hvert af þessu kljúfa í tvennt. 836 00:41:28,970 --> 00:41:30,890 Hvert af þessu kljúfa í tvennt. 837 00:41:30,890 --> 00:41:31,355 >> KEVIN Schmid: Hægri. 838 00:41:31,355 --> 00:41:32,400 >> Áhorfendur: Alla leið niður. 839 00:41:32,400 --> 00:41:32,840 >> KEVIN Schmid: Einmitt. 840 00:41:32,840 --> 00:41:37,330 Svo bara að endurtaka fyrir myndavélina, ef ég kalla FÍB á eins 1000 eða eitthvað 841 00:41:37,330 --> 00:41:41,810 svona, það er augljóslega ekki minna en eða jafnt einu þannig að ég ætla að 842 00:41:41,810 --> 00:41:46,040 fara á þetta annað tilfelli, og þá er ég að fara að hringja FIB 999 plús FIB 998. 843 00:41:46,040 --> 00:41:50,290 Og þá nánast öll þessi vinnu sem FIB 999 gerir er 844 00:41:50,290 --> 00:41:52,950 konar á þessu stigi. 845 00:41:52,950 --> 00:41:55,620 Ef þú ferð niður, er það enn meira óþarfi en það, en ef þú bara 846 00:41:55,620 --> 00:42:01,390 held computing Fib 998 fær okkur ansi nærri FIB 999. 847 00:42:01,390 --> 00:42:05,860 Þannig að við ættum í raun að vera svolítið meira snjall um hvernig við konar endurnýta 848 00:42:05,860 --> 00:42:07,580 þessar, en við erum ekki að endurnýta þessum hlutum öllum. 849 00:42:07,580 --> 00:42:11,860 Svo er hægt að ímynda sér þetta risa, risa tré sem er bara hræðilegt. 850 00:42:11,860 --> 00:42:12,940 >> En engu að síður, OK. 851 00:42:12,940 --> 00:42:14,040 Svo sem var Fib. 852 00:42:14,040 --> 00:42:15,530 Það tekur bara smá stund til að keyra. 853 00:42:15,530 --> 00:42:16,510 Yep? 854 00:42:16,510 --> 00:42:17,760 >> Áhorfendur: [inaudible]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> KEVIN Schmid: Oh, gastu endurtaka spurninguna? 857 00:42:22,481 --> 00:42:23,731 >> Áhorfendur: [inaudible]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> KEVIN Schmid: Oh svo er þetta bara númer það er að fara að vera eins konar á 860 00:42:33,990 --> 00:42:34,850 framreiðslumaður hlið. 861 00:42:34,850 --> 00:42:38,100 Þannig að þetta er ekki að fara að finna í vafranum eða neitt. 862 00:42:38,100 --> 00:42:42,160 Það er í rauninni það sem við höfum er að þegar notandinn hér ansi mikið bráðabirgða 863 00:42:42,160 --> 00:42:45,300 beiðni þeirra aftur, þegar við svoleiðis leggja fram beiðni, við erum að fara að hringja 864 00:42:45,300 --> 00:42:47,040 þessi aðgerð á miðlara megin. 865 00:42:47,040 --> 00:42:50,480 Og þá munum við fá niðurstöðuna baka frá starf að virka. 866 00:42:50,480 --> 00:42:52,460 Og þá munum við bara prenta hana til notandans. 867 00:42:52,460 --> 00:42:54,580 Þannig að notandi er í raun ekki að takast með þessari aðgerð of mikið. 868 00:42:54,580 --> 00:42:57,270 >> Var að spurningin? 869 00:42:57,270 --> 00:42:58,470 Er að skynsamleg? 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 >> Svo aftur, gera við þetta allt res.writeHead hlutur þar sem við prenta út 873 00:43:04,240 --> 00:43:05,150 haus. 874 00:43:05,150 --> 00:43:09,730 Og þá er ég enda viðbrögð með því að gera galdur númer er Fib 45. 875 00:43:09,730 --> 00:43:12,100 Svo skulum hlaupa bara þessa miðlara. 876 00:43:12,100 --> 00:43:15,190 Þannig að ég ætla að gera hnút fib.js. 877 00:43:15,190 --> 00:43:17,340 Svo nú Fib miðlara mitt er í gangi. 878 00:43:17,340 --> 00:43:21,790 >> Og svo hérna, ég er að fara að gera einn svona. 879 00:43:21,790 --> 00:43:22,200 OK? 880 00:43:22,200 --> 00:43:24,960 Þannig að ég ætla bara að fara að segja, krulla. 881 00:43:24,960 --> 00:43:32,226 Svo það er að fara að taka smá stund en vonandi bráðum það verður að klára og 882 00:43:32,226 --> 00:43:35,660 það mun prenta út þessi 45 Fibonacci töluna. 883 00:43:35,660 --> 00:43:36,910 >> Áhorfendur: [inaudible]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> KEVIN Schmid: Það ætti fá gert fljótlega. 886 00:43:42,050 --> 00:43:43,780 Svo það ætti að taka 5-6 sekúndur. 887 00:43:43,780 --> 00:43:48,570 Ég veit ekki það er bara V8 vera frábær hratt, en í öllu falli, þetta er 888 00:43:48,570 --> 00:43:52,700 mjög stutt dæmi og viljandi inelegant af a non-léttvæg 889 00:43:52,700 --> 00:43:54,200 útreikningur. 890 00:43:54,200 --> 00:43:56,700 Svo eftir smá stund, það fá þetta. 891 00:43:56,700 --> 00:44:02,130 >> En nú, hvað ef ég að sams konar tilraun sem áður þar sem ég gera 892 00:44:02,130 --> 00:44:04,010 tvær beiðnir á sama tíma? 893 00:44:04,010 --> 00:44:06,990 Svo hér er ég að fara að krulla á að tölu, og ég ætla 894 00:44:06,990 --> 00:44:08,260 að gera annað Curl. 895 00:44:08,260 --> 00:44:12,070 Og muna, þegar við gerðum þetta fyrir sofa miðlara, þegar við þurftum í rauninni það 896 00:44:12,070 --> 00:44:15,320 eftir fimm sekúndur, að þeir nánast mikið bæði komu aftur til hægri 897 00:44:15,320 --> 00:44:16,380 um sama tíma. 898 00:44:16,380 --> 00:44:18,650 Svo það var ekki sérstaklega bundinn upp. 899 00:44:18,650 --> 00:44:20,290 >> En við skulum reyna það núna. 900 00:44:20,290 --> 00:44:22,370 OK, þannig að við fengum tvo ferli okkar. 901 00:44:22,370 --> 00:44:24,210 Man þá eru ferli auðkenni. 902 00:44:24,210 --> 00:44:25,900 Þetta er að fara til vera a lítill óþægilega á meðan við þæfa. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 Þannig að við skulum bara vera hér og bíða. 905 00:44:35,360 --> 00:44:37,090 >> Svo einn þeirra ætti að koma til baka eftir svona - 906 00:44:37,090 --> 00:44:39,190 OK, svo maður kom til baka. 907 00:44:39,190 --> 00:44:43,570 En þá hvers vegna gerði ekki annað einn koma aftur bara enn? 908 00:44:43,570 --> 00:44:44,389 Yep? 909 00:44:44,389 --> 00:44:49,280 >> Áhorfendur: The framreiðslumaður geta ekki gert neitt á meðan það er að reikna þessi stór tala. 910 00:44:49,280 --> 00:44:51,620 >> KEVIN Schmid: Hægri. 911 00:44:51,620 --> 00:44:55,395 Svo svar var bara að þjóninum virkilega getur ekki gert neitt á meðan 912 00:44:55,395 --> 00:44:57,460 það er að reikna þessi Fibonacci númer. 913 00:44:57,460 --> 00:44:59,360 Svo nú er ég fékk bara tvennt mína aftur. 914 00:44:59,360 --> 00:45:03,210 En ég giska bara að hugsa um númer smá meira, hvernig það er að vinna 915 00:45:03,210 --> 00:45:05,030 og allt. 916 00:45:05,030 --> 00:45:11,750 >> Svo er þessi aðgerð hér kóðinn sem Ég hef sagt þetta miðlara til að keyra þegar það 917 00:45:11,750 --> 00:45:14,100 fær nýjan komandi beiðni. 918 00:45:14,100 --> 00:45:17,940 Svo það er bara að fara að hlaupa í gegnum þetta allt, og þá er að fara að fara 919 00:45:17,940 --> 00:45:21,120 aftur til the atburður lykkja og síðan áfram stöðva fyrir nýja viðburði. 920 00:45:21,120 --> 00:45:23,670 Svo í rauninni það sem við höfum að gerast er the framreiðslumaður er 921 00:45:23,670 --> 00:45:25,080 hlusta á nýja hluti. 922 00:45:25,080 --> 00:45:28,070 Fyrsta manneskjan spyr fyrir hvað 45 er. 923 00:45:28,070 --> 00:45:30,490 Hlaupum þennan kóða til að reikna það. 924 00:45:30,490 --> 00:45:33,420 Þessi kóði tekur u.þ.b. fimm til sex sekúndur til að keyra. 925 00:45:33,420 --> 00:45:36,990 Þá erum við að fara aftur til the atburður lykkja og leita að nýjum beiðnum. 926 00:45:36,990 --> 00:45:42,700 >> Svo er þetta dæmi um hvernig, ef þú hafa hluti sem eru svokölluð reikna 927 00:45:42,700 --> 00:45:48,140 bundið, eða nota mikið af computational, ekki vald, en eins eru 928 00:45:48,140 --> 00:45:50,260 computationally ákafur - 929 00:45:50,260 --> 00:45:54,080 Ég giska eitt að segja um þetta er að þessi aðgerð er að gera algerlega, 930 00:45:54,080 --> 00:45:56,310 að mestu leyti, nokkuð gagnlegt að vinna rétt. 931 00:45:56,310 --> 00:45:59,970 Allan tímann að þessi svarhringingu virka var í gangi, var það nokkuð 932 00:45:59,970 --> 00:46:03,670 mikið að eyða mestum tíma sínum bara computing að NTH Fibonacci tala. 933 00:46:03,670 --> 00:46:05,930 >> En við höfðum aðeins einn þráður að takast á við. 934 00:46:05,930 --> 00:46:10,270 Í Apache fyrirmynd, þegar tvær manneskjur gerði beiðni um að fá FIB 45, við 935 00:46:10,270 --> 00:46:11,610 hefði tvær mismunandi þræði. 936 00:46:11,610 --> 00:46:15,060 Og þá starf Stýrikerfið er hefði verið, eða notandinn stigi 937 00:46:15,060 --> 00:46:18,660 kóða sem stýrir þræði, myndi hef verið að sneiða að upp á 938 00:46:18,660 --> 00:46:23,060 CPU, eða jafnvel ef þú hefðir marga örgjörva, dreifa þeim jafnt yfir örgjörva 939 00:46:23,060 --> 00:46:26,130 svo að þeir voru báðir ljúka um það bil á sama tíma. 940 00:46:26,130 --> 00:46:31,120 >> Svo bara að sýna þér hvernig við getum raða af - og þetta er ekki alls fullkomin 941 00:46:31,120 --> 00:46:34,280 lausn, en svoleiðis hvernig við getum gera a koma aftur hingað og gera 942 00:46:34,280 --> 00:46:35,880 svolítið betur. 943 00:46:35,880 --> 00:46:41,540 Svo það sem ég hef hér er forrit sem heitir Fib C. Og þetta grundvallaratriðum notar 944 00:46:41,540 --> 00:46:45,690 annað af mát hnúturinn er kallað The Child Process Module. 945 00:46:45,690 --> 00:46:49,210 Þannig að ég hef sett það efst tagi af eins og ég myndi gera pund eru 946 00:46:49,210 --> 00:46:51,230 barn process.h eða eitthvað. 947 00:46:51,230 --> 00:46:56,210 Nú hef ég aðgang að þessum CP breytu sem hefur alla virkni mína. 948 00:46:56,210 --> 00:47:01,810 >> Svo nú hvað ég er að gera í þessu svari stjórnandinn er ég er að keyra þetta forrit 949 00:47:01,810 --> 00:47:04,100 punktur rista FIB 45. 950 00:47:04,100 --> 00:47:06,820 Svo það sem ég hef gert - og ég ætla bara að fara að stíga út úr þessu forriti fyrir 951 00:47:06,820 --> 00:47:07,620 svolítið - 952 00:47:07,620 --> 00:47:11,060 er ég hef skrifað C forrit sem grundvallaratriðum reiknar 953 00:47:11,060 --> 00:47:12,630 NTH Fibonacci númer. 954 00:47:12,630 --> 00:47:15,960 Svo hér er bara forrit sem ég hef skrifað í C sem reiknar þetta. 955 00:47:15,960 --> 00:47:19,040 Ég get þýða það, og ég get keyrt það á stjórn lína. 956 00:47:19,040 --> 00:47:22,150 Og það er að fara að reikna 45th Fibonacci númer. 957 00:47:22,150 --> 00:47:24,510 >> Svo eftir það tekur bara ansi mikið og lengi. 958 00:47:24,510 --> 00:47:28,240 Ég gæti sennilega hafa notað bandstrik 03 til fínstilla það eða eitthvað svoleiðis, 959 00:47:28,240 --> 00:47:31,050 en ég gerði bara eins og venjulegur þýðanda stillingar. 960 00:47:31,050 --> 00:47:33,260 Og það prentar það út. 961 00:47:33,260 --> 00:47:36,830 >> En nú, hvað er ég að gera svona? 962 00:47:36,830 --> 00:47:39,800 Oh sorry, rangt skrá. 963 00:47:39,800 --> 00:47:42,800 Svo ég gera það sama efni með haus eins og áður. 964 00:47:42,800 --> 00:47:45,780 Þá er ég að gera þetta cp.exec. 965 00:47:45,780 --> 00:47:49,460 Svo er það þetta er að fara að gera er að það er að fara að keyra þetta forrit. 966 00:47:49,460 --> 00:47:51,960 En hvernig þetta virkar er að það er ekki að fara að bíða eftir 967 00:47:51,960 --> 00:47:53,400 þessi forrit til að ljúka. 968 00:47:53,400 --> 00:47:56,000 Það segir bara í rauninni framkvæma þessa áætlun. 969 00:47:56,000 --> 00:47:58,700 Svo í rauninni tegund this inn í skipanakvaðningunni konar. 970 00:47:58,700 --> 00:48:02,350 >> Og þá, þegar þú ert búinn með það, hlaupa þessa aðgerð. 971 00:48:02,350 --> 00:48:04,800 Svo nú erum við konar fá þetta heild aftur hlutur af 972 00:48:04,800 --> 00:48:06,750 eins og við erum ekki að bíða. 973 00:48:06,750 --> 00:48:08,530 Er svona skynsamleg? 974 00:48:08,530 --> 00:48:08,990 Yep? 975 00:48:08,990 --> 00:48:11,060 >> Áhorfendur: [inaudible]? 976 00:48:11,060 --> 00:48:13,610 >> KEVIN Schmid þannig að þetta verður í raun opna nýja aðferð til að gera það. 977 00:48:13,610 --> 00:48:19,310 Svo er þetta í raun, í sumu leyti, illt, ekki frábær illt, en það er 978 00:48:19,310 --> 00:48:22,990 mikilvægt að segja að þetta er eins konar að fara aftur til, annars vegar, Apache 979 00:48:22,990 --> 00:48:26,450 líkan þar sem við gerum þræði og ferli fyrir hverja beiðni eða 980 00:48:26,450 --> 00:48:29,280 ferli fyrir hverja beiðni. 981 00:48:29,280 --> 00:48:32,090 Svo er af þessu tagi hliðstætt að það Apache gerir. 982 00:48:32,090 --> 00:48:35,110 Í sumum tilvikum, það verður bara að nota nýja þráður, sem er lítið meira ljós 983 00:48:35,110 --> 00:48:39,040 þyngd en ferli, en Apache gat endað gaffall nýja aðferð 984 00:48:39,040 --> 00:48:43,370 sem er góður af því sem við gerum hér óbeint með því að gera punktur skástrik FIB 45. 985 00:48:43,370 --> 00:48:48,690 >> Og þá í því tilfelli, við hvers konar fellur sömu gjöld ferlum. 986 00:48:48,690 --> 00:48:50,710 Svo er þetta bara eitt sem þú getur gert. 987 00:48:50,710 --> 00:48:52,600 En bara að sýna þessa tegund af gangi. 988 00:48:52,600 --> 00:48:57,120 Og þetta tal er bara virkilega ætlað að kynna þessar tegundir af forritum sem 989 00:48:57,120 --> 00:49:00,710 leið til að sýna mismunandi sjónarhorn á hvernig á að hanna netþjónum eins og þessi. 990 00:49:00,710 --> 00:49:08,300 Þannig að þetta er í gangi, og þá nú ef ég geri þetta aftur, fékk ég tvo ferli auðkenni. 991 00:49:08,300 --> 00:49:10,320 >> Við skulum tala bara um atriði sem þarf að benda á. 992 00:49:10,320 --> 00:49:11,980 Svo eftir því að þeir eru í þrepum. 993 00:49:11,980 --> 00:49:12,700 Það er svalt. 994 00:49:12,700 --> 00:49:15,140 Vegna þess að það var 27.122 áður. 995 00:49:15,140 --> 00:49:18,580 En tilkynning nú, komu þeir aftur á nokkurn veginn sama tíma. 996 00:49:18,580 --> 00:49:23,960 >> Og nú, góð spurning til að spyrja um hvers vegna var sú raunin er, sem starf 997 00:49:23,960 --> 00:49:27,590 var það nú til að svoleiðis gera þetta konar spila fair við hvert 998 00:49:27,590 --> 00:49:31,350 önnur, þessi tvö dæmi af punktur slash Fib 45 sem ég hljóp 999 00:49:31,350 --> 00:49:32,880 eða að Hnútur hljóp? 1000 00:49:32,880 --> 00:49:36,940 Sem eins konar gerir það sanngjarnt að þeir báðir fá eins konar jafnvægi hlaupa tíma? 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> Áhorfendur: [inaudible]. 1003 00:49:44,220 --> 00:49:44,620 >> KEVIN Schmid: Já. 1004 00:49:44,620 --> 00:49:49,740 Svo í grundvallaratriðum, þegar ég punktur skástrik FÍB 45 eða eitthvað svoleiðis, núna er það 1005 00:49:49,740 --> 00:49:53,750 konar upp að stýrikerfi til að höndla Runtime af þeim áætlunum. 1006 00:49:53,750 --> 00:49:56,920 Og nú getur tímasett þá á mismunandi örgjörva eða það 1007 00:49:56,920 --> 00:49:58,330 getur tímasett þá. 1008 00:49:58,330 --> 00:50:01,870 Það getur sneið upp tíma og einn CPU fær það eða að þeir fá 1009 00:50:01,870 --> 00:50:03,330 að keyra á eitt CPU. 1010 00:50:03,330 --> 00:50:05,620 Svo er það hugmyndin að baki því. 1011 00:50:05,620 --> 00:50:07,220 Er það skynsamleg til allra? 1012 00:50:07,220 --> 00:50:10,950 Svo nú Hnútur er í raun ekki að spila á hluti í skiptingu þessara verkefna. 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 >> Svo það er næstum það um dæmi. 1016 00:50:17,840 --> 00:50:23,370 Mig langaði bara til að sýna einn í viðbót vegna þess að mikið af þessu svo langt hefur verið 1017 00:50:23,370 --> 00:50:27,350 ekki algerlega frábær hagnýt í sumum tilvikum. 1018 00:50:27,350 --> 00:50:30,970 Ég get ímyndað mér að koma heim eftir þetta tala og eitthvað og segja eins og, 1019 00:50:30,970 --> 00:50:35,710 Jæja ég fékk svona út úr því tala um að Ég get gert Fibonacci miðlara fyrir 1020 00:50:35,710 --> 00:50:37,360 Lokaverkefni mitt. 1021 00:50:37,360 --> 00:50:40,770 Svo hér er bara svoleiðis eitt dæmi sem vonandi verður - 1022 00:50:40,770 --> 00:50:44,620 kannski ekki, en kannski - aðeins meira konar viðeigandi að lokaverkefnum og 1023 00:50:44,620 --> 00:50:46,440 hugsa fram í tímann fyrir hlutum eins og þessi. 1024 00:50:46,440 --> 00:50:48,870 >> Svo er þetta chat.js. 1025 00:50:48,870 --> 00:50:52,290 Þannig að þetta er góður af eins og sumir sýnishorn framreiðslumaður hlið kóða sem þú getur notað til að 1026 00:50:52,290 --> 00:50:55,700 setja upp litla spjall miðlara eins þú gætir hafa séð á 1027 00:50:55,700 --> 00:50:56,630 Facebook Spjall eða hvað sem er. 1028 00:50:56,630 --> 00:50:59,990 Þannig að ég er ekki að segja þetta er eins og Facebook Spjall, en þetta er eins konar 1029 00:50:59,990 --> 00:51:06,230 eins gott - kannski ekki gott, en kannski góður - upphafið spjall 1030 00:51:06,230 --> 00:51:08,560 miðlara fyrir vefsvæðið þitt fyrir lokaverkefni. 1031 00:51:08,560 --> 00:51:11,040 Svo skulum líta á hvað það er að gera. 1032 00:51:11,040 --> 00:51:15,500 >> Þannig að við erum að fá þetta sérstaka hlutur efst, þetta VAR Sio 1033 00:51:15,500 --> 00:51:17,050 jafngildir krefjast Socket.IO. 1034 00:51:17,050 --> 00:51:20,280 Svo er þetta annar hlutur sem það gerir ekki reyndar koma búnt með 1035 00:51:20,280 --> 00:51:22,300 Hnútur en þú getur sett það. 1036 00:51:22,300 --> 00:51:23,480 Það er Hnútur mát. 1037 00:51:23,480 --> 00:51:25,670 Svo er það bara eins og sumir framlengingu á hnút. 1038 00:51:25,670 --> 00:51:29,220 >> SocketIO er reyndar mjög góður af kaldur. 1039 00:51:29,220 --> 00:51:32,550 Það er abstrakt sem í grundvallaratriðum það sem það gerir er það leyfir þér að 1040 00:51:32,550 --> 00:51:35,770 hafa þetta straum af samskiptum milli vefnum 1041 00:51:35,770 --> 00:51:39,430 flettitæki og vefþjóni. 1042 00:51:39,430 --> 00:51:45,250 Svo að mestu leyti svo langt, við höfum haft þessar mjög fljótur eina sekúndu eða tvö 1043 00:51:45,250 --> 00:51:48,790 second samskipti milli vefur vafra og the vefur framreiðslumaður. 1044 00:51:48,790 --> 00:51:53,310 Svo það er í grundvallaratriðum að fara á google.com, fá efni, senda það til baka, og þá 1045 00:51:53,310 --> 00:51:53,770 við erum búin. 1046 00:51:53,770 --> 00:51:56,560 Við erum aldrei að tala aftur þar til notandinn slær í eitthvað annað. 1047 00:51:56,560 --> 00:52:01,090 >> En hvað Socket.IO og svipað góður af hlutir - og SocketIO er í raun einn 1048 00:52:01,090 --> 00:52:03,940 af þeim hlutum sem er byggð á eins og WebSocket sem er tegund af boði 1049 00:52:03,940 --> 00:52:06,440 sem hluti af HTML5 - 1050 00:52:06,440 --> 00:52:09,620 sem leyfir þér að hafa þetta áframhaldandi umræðu. 1051 00:52:09,620 --> 00:52:13,990 Og þetta er mjög gagnlegt í spjall miðlara konar hlutur því það er 1052 00:52:13,990 --> 00:52:17,390 góður af eins og áframhaldandi umræðu í nokkrar leiðir því ef þú ert að spjalla 1053 00:52:17,390 --> 00:52:21,540 við einhvern, getur þú nú bara senda Skilaboðin niður í rörið, og þá 1054 00:52:21,540 --> 00:52:23,940 miðlara getur sent skilaboð niður pípa til annarra aðila sem þú ert 1055 00:52:23,940 --> 00:52:24,520 spjalla við. 1056 00:52:24,520 --> 00:52:26,903 Og þá er hægt að hafa þetta skiptast svona. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> Svo er þannig hvað SocketIO er gott fyrir. 1059 00:52:32,850 --> 00:52:38,400 Ástæðan fyrir því að SocketIO notar WebSockets eins eitt er að í 1060 00:52:38,400 --> 00:52:43,980 Auk þess að bara venjulegur gamall WebSockets, það gerir líka sumir bragðarefur til að grundvallaratriðum 1061 00:52:43,980 --> 00:52:45,610 gera það vafranum samhæft. 1062 00:52:45,610 --> 00:52:50,040 Svo vöfrum eins og Internet Explorer Því miður styðja ekki WebSockets 1063 00:52:50,040 --> 00:52:50,810 réttur út af the kassi. 1064 00:52:50,810 --> 00:52:55,290 Svo notar annars konar kaldur snyrtilegur hluti með Adobe Flash til að leyfa 1065 00:52:55,290 --> 00:52:57,170 þú að hafa yfir vafra stuðning. 1066 00:52:57,170 --> 00:52:58,800 Svo er það mjög gagnlegt. 1067 00:52:58,800 --> 00:53:02,440 >> Og í raun, ég veit ég er svona keyra á réttum tíma hér, en CS50 1068 00:53:02,440 --> 00:53:08,490 Ræða, hefur þú einhvern tíma séð eitthvað eins, ég veit ekki, eyða svo og svo er 1069 00:53:08,490 --> 00:53:11,030 að svara þessum pósti eða eitthvað svona, að lögun? 1070 00:53:11,030 --> 00:53:12,250 Það er SocketIO. 1071 00:53:12,250 --> 00:53:15,580 Svo þegar einhver byrjar að slá inn í ræða reit til að gera svar eða 1072 00:53:15,580 --> 00:53:20,040 eitthvað, vafrinn þinn styður hvað er kallað í SocketIO gefur frá sér einhvers konar 1073 00:53:20,040 --> 00:53:22,660 atburður sem segir einhver er svara við þessa færslu. 1074 00:53:22,660 --> 00:53:26,110 >> Þá segir miðlara, OK, hvað þarf ég að gera? 1075 00:53:26,110 --> 00:53:29,270 Jæja nú þarf ég að segja þeim öðrum krakkar sem eru á CS50 Ræða leita 1076 00:53:29,270 --> 00:53:31,170 á þessum þræði að einhver er að svara. 1077 00:53:31,170 --> 00:53:34,190 Svo er þannig hvað SocketIO er gott fyrir, þetta áframhaldandi konar 1078 00:53:34,190 --> 00:53:35,930 straum af umræðu. 1079 00:53:35,930 --> 00:53:37,250 OK. 1080 00:53:37,250 --> 00:53:40,060 >> Svo það sem ég hef hér - og við erum bara fara að hunsa tengingar array 1081 00:53:40,060 --> 00:53:41,390 fyrir a lítill hluti - 1082 00:53:41,390 --> 00:53:43,080 það sem ég geri er ég annar hlusta. 1083 00:53:43,080 --> 00:53:46,880 Svo er það bara þannig í Socket.IO er segja við skulum hlusta á þessa höfn. 1084 00:53:46,880 --> 00:53:50,060 Og þá er ég að gera þetta við tengingu. 1085 00:53:50,060 --> 00:53:53,360 Svo er það bara í rauninni Socket IO er leið til að segja, þegar við fáum að 1086 00:53:53,360 --> 00:53:55,840 tengingu, ég vil þig að keyra þennan kóða. 1087 00:53:55,840 --> 00:53:59,870 >> Og taka eftir því að í stað þess að þurfa sæk og Res liðu í þar sem ég hef fals. 1088 00:53:59,870 --> 00:54:03,260 Og þetta Socket hugmynd er í grundvallaratriðum þetta hlutur sem þú getur skrifað og lesið 1089 00:54:03,260 --> 00:54:05,750 frá því hefur notandinn er skilaboð hugsanlega. 1090 00:54:05,750 --> 00:54:10,700 Og skilaboðin sem þú vilt senda getur farið í gegnum þessi fals. 1091 00:54:10,700 --> 00:54:12,140 Er að skynsamleg? 1092 00:54:12,140 --> 00:54:14,490 Svo er það þetta áframhaldandi hlutur. 1093 00:54:14,490 --> 00:54:17,820 >> Svo það sem ég geri er að ég kalla Socket.emit. 1094 00:54:17,820 --> 00:54:20,330 Og gefa frá sér tekur nokkuð mikið tvær breytur. 1095 00:54:20,330 --> 00:54:24,100 Fyrsta rifrildi er band bara representing the tegund af 1096 00:54:24,100 --> 00:54:25,270 hlutur sem þú ert að emitting. 1097 00:54:25,270 --> 00:54:28,120 Svo fyrir þessu tilviki, hef ég notað Þessi strengur ný skilaboð. 1098 00:54:28,120 --> 00:54:32,670 Og það er bara í rauninni að segja að gerð þetta, hvað ég er 1099 00:54:32,670 --> 00:54:34,750 sendingu, ný skilaboð. 1100 00:54:34,750 --> 00:54:38,460 Svo þú getur hlustað á tilteknum tegundum eins og nýtt skeyti eða hvað 1101 00:54:38,460 --> 00:54:39,960 með því að nota punkt á. 1102 00:54:39,960 --> 00:54:44,570 >> Svo tengingu og notandi sendi þar, ef þú horfir á þar sem við köllum punktur á, 1103 00:54:44,570 --> 00:54:48,150 þá eru aðrir strengir sem tákna gerðir notanda skilaboð. 1104 00:54:48,150 --> 00:54:52,060 Svo það er í grundvallaratriðum að þú getur haft þetta frá sér eitt af þessum tegundum skilaboða og 1105 00:54:52,060 --> 00:54:55,520 þá gera eitthvað til að bregðast við einn af þessum tegundum skilaboða 1106 00:54:55,520 --> 00:54:57,640 >> Þannig að ég ætla emitting þessa nýju skeyti. 1107 00:54:57,640 --> 00:55:00,540 Við erum að fara að hunsa connections.push fyrir a second. 1108 00:55:00,540 --> 00:55:03,360 En þá segi ég, Socket.on notandi sendi. 1109 00:55:03,360 --> 00:55:07,540 Svo nú er það er góður af eins þegar notandi sendir mér skilaboð, ég vil 1110 00:55:07,540 --> 00:55:09,240 þú að keyra þennan kóða. 1111 00:55:09,240 --> 00:55:12,080 Og taka eftir því að nafnlaus virka er að taka í þessari breytu 1112 00:55:12,080 --> 00:55:16,300 kallast gögn sem er í grundvallaratriðum að fara til að hafa skilaboðin notandans. 1113 00:55:16,300 --> 00:55:20,700 >> Svo nú skulum konar tala um tengingarnar array. 1114 00:55:20,700 --> 00:55:24,590 Þannig að þetta er hannað fyrir spjall viðskiptavinur þar grundvallaratriðum er allir góður yfir í 1115 00:55:24,590 --> 00:55:25,950 sama spjallrás. 1116 00:55:25,950 --> 00:55:29,640 Svo í grundvallaratriðum, það sem við þurfum á að halda um er nokkur fylki sem í grundvallaratriðum 1117 00:55:29,640 --> 00:55:33,170 táknar allt fólkið spjalla í nokkrar leiðir, ef það er vit í. 1118 00:55:33,170 --> 00:55:33,340 Satt? 1119 00:55:33,340 --> 00:55:37,190 Þar sem við þurfum að vita hverjir þessir krakkar eru þannig að við getum sent þeim skilaboð 1120 00:55:37,190 --> 00:55:39,140 sem aðrir hafa sent til okkar. 1121 00:55:39,140 --> 00:55:44,440 >> Svo er það þetta númer gerir er þegar notandi sendir skilaboð - það er tegund af 1122 00:55:44,440 --> 00:55:45,300 The atburður - 1123 00:55:45,300 --> 00:55:47,120 við erum að fara að keyra þennan kóða. 1124 00:55:47,120 --> 00:55:51,240 Og hvað við gerum er að við að keyra í gegnum þetta array sem við höfum kallað tengingar. 1125 00:55:51,240 --> 00:55:54,390 Og laglegur mikill fyrir hvert tengingu nema einn sem er okkar, sem er 1126 00:55:54,390 --> 00:55:59,520 hvað þessi kóði segir, sendu okkur ný skilaboð með því Viðhengi 1127 00:55:59,520 --> 00:56:01,210 upplýsingar. 1128 00:56:01,210 --> 00:56:04,880 >> Þannig að ef þú tekur eftir hér, það sem ég gerði þegar notandinn í raun gerir nýtt 1129 00:56:04,880 --> 00:56:08,560 tenging er Ég hef bætt við JavaScript.push aðferð, þetta er 1130 00:56:08,560 --> 00:56:12,100 í rauninni bara að segja eins og að bæta að Socket sem gildi í 1131 00:56:12,100 --> 00:56:13,900 tengsl okkar array. 1132 00:56:13,900 --> 00:56:20,560 Svo nú þegar þetta númer keyrir, það vilja senda það til þeirra sérstaklega 1133 00:56:20,560 --> 00:56:22,020 tengingar. 1134 00:56:22,020 --> 00:56:26,980 Þannig að þetta getur verið góður upphafspunktur til að smíða spjall miðlara 1135 00:56:26,980 --> 00:56:28,250 eða eitthvað svipað. 1136 00:56:28,250 --> 00:56:33,315 >> Og hvers konar kaldur hlutur er að númer sem þú sérð hér fyrir eins og á og 1137 00:56:33,315 --> 00:56:36,390 gefa frá sér og eitthvað svoleiðis er það sama konar JavaScript kóða sem þú myndir 1138 00:56:36,390 --> 00:56:39,260 skrifa í vafranum til að hafa samskipti við þjóninn. 1139 00:56:39,260 --> 00:56:42,480 Svo að hvers vegna SocketIO er góður af snyrtilegur og gagnlegt í þá áttina. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> Ó og bara einn hlutur raunverulegur fljótur. 1142 00:56:49,250 --> 00:56:55,970 Það var CS50 lokaverkefni í fyrra sem í grundvallaratriðum innleitt spjall 1143 00:56:55,970 --> 00:56:57,840 miðlara í Node.js. 1144 00:56:57,840 --> 00:57:01,350 Ég held að það er Harvardchats.org en ég er ekki - 1145 00:57:01,350 --> 00:57:02,940 OK. 1146 00:57:02,940 --> 00:57:06,190 Ég er ekki viss hvað slóðin er, en Ég get sent það út síðan. 1147 00:57:06,190 --> 00:57:09,260 En það er góður af kaldur hvað þú getur gert með Node.js. 1148 00:57:09,260 --> 00:57:14,680 >> Svo ég vona, almennt, hefur þú krakkar á góða tilfinningu fyrir hvað Node.js er gagnlegt 1149 00:57:14,680 --> 00:57:17,870 fyrir og hvernig þú gætir kannski sótt að lokaverkefni þínu. 1150 00:57:17,870 --> 00:57:21,050 Ég mun vera að senda út meira auðlindir ásamt þessari. 1151 00:57:21,050 --> 00:57:23,170 Og þakka þér fyrir að koma. 1152 00:57:23,170 --> 00:57:23,610 Þakka þér. 1153 00:57:23,610 --> 00:57:27,168 >> [Applause]