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