>> KEVIN SCHMID: Hello kila mtu.
Karibu CS50 semina juu ya Node.js.
Jina langu ni Kevin.
Mimi nina CS50 TF.
Na mimi nina aina ya kama kweli msisimko kuhusu semina hii.
Nadhani Node.js ni baridi sana.
Natumaini kwamba semina hii inaweza kutumika mazuri, mimi nadhani, chachu kwa
baadhi ya miradi yako ya mwisho kama wewe ni nia ya kutumia
kitu kama Node.js.
>> Tutaweza aina ya kuanza semina mbali na tu kuzungumza kuhusu kidogo ya
aina ya background scalability mitazamo ya Node.js, na kisha
tutaweza hoja ya baadhi ya mifano code.
Na mimi itabidi code kwenye tovuti, na unaweza kuangalia code.
Na baada ya semina, mimi itabidi kutatua ya majadiliano kuhusu jinsi gani unaweza kuanzisha Node.js
kwenye kompyuta yako.
>> OK.
Basi hebu kuanza.
Kwa hiyo mimi nadhani nataka kuzungumzia ni juu ya vya mtandao, kwa kweli, ya kwanza.
Na kuanza mjadala huu, mimi kimsingi na mchoro ambayo ni kutoka
vitabu vya kiada kutumika kwa ajili ya CS61, ambayo kimsingi inaonyesha mahusiano ya
kati ya mchakato wa mteja, kama mtandao wako browser au kama mteja wako lengo au
kitu kama hicho, na mtandao wa kompyuta.
Hivyo hii aina ya inaonekana sawa na picha kwamba aliona katika hotuba ya
Jumatano ambapo kimsingi tuna baadhi ya mteja mchakato kama Google Chrome.
>> Na kisha hatua moja ni mteja atatuma ombi.
Hivyo kwamba wanaweza kuwa na kitu kama vizuri hebu kutembelea, mimi sijui, CS50.net.
Hivyo sisi suala ombi hilo.
Na haina mtu yeyote kumbuka jina la itifaki kwamba unasema jinsi
ombi lazima muundo?
Yep.
>> Watazamaji: [inaudible].
>> KEVIN SCHMID: Hasa.
Hivyo ni kama HTTP, sawa?
Hivyo kimsingi vipimo kwa ajili ya jinsi ombi hilo lazima kweli kuwa aliweka
nje, kwa sababu mwisho wa siku, ombi hilo ni kweli tu kama
kamba kwamba kimsingi anasema mimi nataka hii.
Na vipimo kwa kuwa ni HTTP.
Ili kama itifaki.
>> Hivyo basi server inapata kwamba ombi.
Hivyo guys na mtandao wa kompyuta imewekwa katika CS50 appliance.
Ni Apache.
Na wiki hii wakati kazi juu ya tatizo kuweka saba, wewe utakuwa kweli kazi
na kwamba mtandao wa kompyuta.
Hivyo server inapata ombi hilo, na kisha ina aina ya scratch yake
kichwa na kusema kama vizuri nini mimi kufanya na hili?
>> Hivyo kulingana na kile anaamua kufanya, basi inaweza kuwa na kuwasiliana na baadhi ya aina
wa rasilimali hiyo.
Na rasilimali ambayo inaweza kuwa mengi ya mambo mbalimbali.
Kwa moja, inaweza kuwa tu kama tuli HTML file.
Hivyo inaweza tu kuwa kama baadhi HTML kwamba ni kama kwa
tovuti yako binafsi.
Inaweza kuwa file tuli kama picha au kama movie kwamba wewe.
Ingeweza hata kuwa na majadiliano baadhi ya aina ya database
kama database MySQL.
Hivyo hana daima kuwa na kuwasiliana na rasilimali, lakini katika
baadhi ya matukio, naweza.
>> Hivyo basi nini kinaendelea kufanya baada ya kuwa ni kwenda
kutuma nyuma majibu.
Na majibu kwa hii ni pia maalum kwa HTTP.
Hivyo basi mteja anaweza kupokea hiyo.
Ni unaweza machozi ni mbali na mchakato yake.
Na kisha kupata ukurasa wa mtandao kama Google au CS50.net au
chochote akaenda.
OK?
>> Hivyo hii ni mwingiliano msingi kwamba tunakwenda kuwa kushughulika na.
Na sisi ni pretty much kwenda kuwa kulenga sehemu hii ya
mahusiano, server.
OK.
Baridi.
Mtu yeyote una maswali yoyote hadi sasa?
OK.
>> Hivyo kama sisi alisema, mtandao wa kompyuta inapata ombi hili HTTP na kisha masuala ya hii
HTTP majibu.
Na kama kuongelea kabla, CS50 appliance mtandao wa kompyuta ni Apache.
Hivyo wakati wewe guys kazi ya P kuweka saba, wewe kwenda kufanya kazi na
Apache mtandao wa kompyuta.
Hutaweza kuwa kwa kweli kazi na Apache moja kwa moja sana.
Wewe aina ya configure Apache kidogo wakati bayana majeshi virtual au
v majeshi, na tutaweza kupata na kwamba katika kidogo.
>> Lakini kimsingi, Apache mtandao wa kompyuta kuanzisha kufanya kazi na aina PHP
ya nje ya sanduku.
Hivyo kinachotokea hasa ni wakati wa kwenda kwa moja ya tovuti yako kama, kusema,
ndani jeshi slash index.php au kitu, ni ya browser yako inapeleka kwamba
ombi, na kisha Apache ameketi huko na takwimu za nje kwa kufanya hivyo.
Na hatua ni kutekeleza kwamba kanuni katika index.php na
kisha kutuma mbali nyuma.
Hivyo kuna hiyo.
Hivyo sisi aina ya kuongea kuhusu hili.
Hivyo inaweza tu kutumika file tuli au kukimbia baadhi ya kanuni PHP na kisha suala
majibu.
>> Hivyo basi swali la kawaida kwamba wanaweza kuja up ni vizuri, ni jinsi gani sisi kweli kukabiliana
na kuwa na watumiaji mbalimbali wakati huo huo?
Hivyo kufikiria kama ungekuwa kuandika mtandao server, kama alikuwa na mtandao wa kompyuta kwamba
ungekuwa kujaribu kuandika katika kitu kama C au kitu kama hicho,
kimsingi unaweza kufikiria kuhusu jinsi huko inaweza kuwa baadhi ya aina ya kificho kwamba
watapewa ombi, lakini kisha ina kufanya kazi hii yote juu yake.
Inaweza kuwa, kwa mfano, wasiliana na database au kitu kama hicho.
Haki?
Na kisha bila kufanya aina hiyo ya usindikaji na kisha
kurejea majibu.
Ili kama high ngazi ya jumla.
>> Lakini si mara moja dhahiri jinsi gani anaweza kufanya hivyo watu ili mbili au
hata watu 1,000 anaweza kufanya kazi kwa yako server mtandao wakati huo huo.
Hivyo ufumbuzi kwamba Apache anatumia inaitwa nyuzi au taratibu.
Hivyo unaweza kuwa na habari za maneno haya kabla ya.
Ni sawa kama una si, lakini nadhani tu kuhusu nyuzi au taratibu kama njia kwa
mfumo wa uendeshaji au mpango mtumiaji au kitu kama hicho au mtandao wa kompyuta
na aina ya kutekeleza nyingi mambo mara moja.
Hivyo unaweza kuwa na habari mrefu kama nyuzi ya kunyongwa.
Hivyo ni aina ya kama wewe ni aina ya multitasking.
>> Na kama wameweza kuona juu ya sanduku yako mbali, au kitu kama hicho,
multicore, nini unaweza kufanya ni unaweza kukimbia nyuzi mbili tofauti juu ya mbalimbali
sehemu ya CPU ili waweze kweli kutokea wakati huo huo.
Hivyo hii ni kweli nguvu.
Na hii ni aina ya Apache ya ufumbuzi wa tatizo hili.
>> Hivyo ni kuna aina ya kama masuala yoyote kwa njia hii ingawa?
Hivyo mimi nadhani aina ya aliandika hapo.
Lakini wote wawili aina ya matumizi mengi ya kumbukumbu.
Ni gharama kubwa sana ya kujenga thread au mchakato.
>> Na sehemu ya hoja ni kwamba tu kama wakati wewe ni mbio C mpango
kama kuu yako na kisha kuwa wito kazi nyingine, ambayo ina
baadhi ya aina ya stack.
Hivyo nyuzi pia zinahitaji kabisa tofauti stack ambayo
inaweza kuwa kubwa kabisa.
Na kama unaweza kufikiria kuwa na tani ya watumiaji kwenye tovuti yako, ingekuwa
mengi ya nyuzi tofauti.
Kwamba mengi ya mwingi kwa kusimamia na kudumisha.
Hivyo ni matumizi makubwa ya kumbukumbu.
>> Na kisha, pia, hebu sema wewe tu na CPU moja, au hebu kusema kuwa
nyuzi zaidi kuliko wewe na wale multicores.
Haki?
Basi hebu kusema alikuwa nyuzi 10 na wewe tu alikuwa CPUs tano.
Wewe aina ya kufanya jambo hili ambapo kubadili kati ya sasa
moja kwamba mbio kwa sababu wewe hawezi kukimbia zote 10 kwa wakati mmoja.
Na kwamba wito kubadili mazingira.
Na kwamba muda wa kweli ina michache ya mazingira tofauti, lakini hebu tu
kufikiria kama byte kati ya nyuzi mbili.
Hiyo inaweza kuwa pretty ghali kwa sababu kimsingi nini una kufanya ni wewe
na kukomesha kile unachokifanya, kuokoa hali ya kwamba mbio thread, na
kisha kubadili mahali pengine.
>> Hivyo haina kila mtu aina ya kuona motisha ya nini nyuzi na
michakato ya inaweza kuwa ni kidogo bulky?
Na je, una swali?
OK.
Baridi.
Mtu yeyote una maswali yoyote?
OK.
>> Hivyo kama sisi kuchukua hatua nyuma kwa ajili ya pili, kuna aina ya kama
uchunguzi kwamba tunaweza kufanya kuhusu mengi ya maombi ya mtandao.
Na kwamba ni kweli kwamba mengi yao kweli si kufanya hivyo muhimu sana
kazi ndani ya thread.
Hivyo ina mtu yeyote kuanza P kuweka saba wakati wote?
Hivyo unataka labda kuelezea baadhi ya sehemu?
Je, kazi ya kuingia au kitu kama hicho?
>> Watazamaji: Hapana
>> KEVIN SCHMID: OK.
Kamwe akili.
Sorry.
Lakini kimsingi, katika P kuweka, wewe ni kwenda kuwa maamuzi mengi ya aina ya
maswali kwa database kupata baadhi ya habari kutoka kwamba database.
Na nini code yako ni kwenda kufanya, nini kwamba mchakato Apache au
kwamba Apache thread ni kwenda kufanya wakati ina kuwasiliana na
database ni ni aina ya kwenda kuwa wameketi hapo ni kwenda kuwa
kusubiri kwa database ya kujibu.
>> Sasa kwamba wanaweza kuonekana kama kwamba a kubwa kukabiliana kwa sababu database ni juu yako
CS50 appliance, sawa?
Lakini kuna baadhi ya aina ya mtandao utulivu huko kwa sababu sasa mtandao
server ina kutoa ombi lake mwenyewe kwa orodha ya kuwasiliana na
database na kisha kupata kwamba habari nyuma.
Hivyo sasa ni kama vizuri kusubiri kwa ajili yangu, mimi nina kwenda kupata kitu kutoka
database na kisha kuna mengi ya kusubiri kinachoendelea.
Je, hiyo mantiki?
>> Na kwa baadhi ya mambo ni kuwa mbaya.
Kama tu ana, kwa mfano, upatikanaji wa kumbukumbu, si kwamba kama
kutisha I / O utulivu.
Na wakati mimi kusema, I / O utulivu, nini mimi akimaanisha ni kama aina yoyote ya kama
pembejeo pato.
Lakini kwa kupata faili juu ya disk, kama kama nilitaka kumtumikia HTML tuli
faili kwamba alikuwa kwenye mtandao ukurasa yangu au kitu kama hicho, mimi aina ya kuwa na
kuacha kwa kidogo, kusoma faili kwamba kutoka disk, na kisha katika
mchakato kwamba mimi nina kusubiri.
Mimi si kufanya kazi muhimu.
>> Hii si kweli wa kila kitu, lakini ni jambo la kawaida katika maombi kama P kuweka
saba na mengi ya maombi kwamba wewe si
kweli kufanya kufikiri sana.
Na wakati mimi kusema kufikiri, I mean kama kazi computational.
Kazi hiyo computational inaweza kuwa ni kitu kama vile, kusema, alitaka
kuandika server mtandao tu computed nth Fibonacci idadi.
Hiyo haina sauti kama hasa furaha mtandao wa kompyuta.
Kama mimi bila kutarajia tovuti ya kwamba kuwa Facebook ijayo, lakini kwamba ni baadhi ya
aina ya kazi computational.
>> Na unaweza kufikiria kuchukua nafasi ya kuwa na aina nyingine ya kuvutia
computational kazi.
Hebu sema wewe walikuwa kuandika kitu kwamba mahesabu digrii ya
kujitenga kati ya watu wawili au kitu kama hicho.
Hivyo kwamba hana kuhusisha baadhi ya aina ya hesabu, sawa?
Na hata basi, kwa kufanya hivyo bado una kufanya mengi ya kusubiri kwa labda
una swala database kuangalia up ambaye ni marafiki na nani au
kitu kama hicho.
Kwa hiyo, kuna aina ya dhana ya computational kazi.
Je, hiyo mantiki?
Je, mtu yeyote una maswali yoyote?
>> Oh na mimi nadhani kuweka watumishi mazungumzo huko kwa sababu watumishi mazungumzo ni aina ya
mfano mwingine mzuri wa hili.
server mazungumzo hana kufanya kufikiri sana.
Ni tu ana kusubiri kwa ajili ya watu kutuma ujumbe na kisha wakati
hawana, kuwatuma.
OK?
>> Hivyo tu kwa kurejea tena, Apache na mtandao sawa watumishi kama kwamba uma a
mengi ya nyuzi na michakato ambayo inaweza kuwa aina ya fujo.
Kwa hiyo mimi nadhani swali ambayo inaweza kuja na kwamba ni nini tunahitaji kuwa na
nyuzi nyingi na taratibu?
Nini kama sisi tu alikuwa mmoja?
>> Basi hebu aina ya rangi picha ya jambo hili bila kuangalia kama.
Basi hebu kutumia moja tu thread.
OK?
Hivyo tu kufikiria hii kwa thread moja.
>> Hebu tuseme sisi si kweli kufanya kiasi kwamba muhimu - na wakati mimi kusema
muhimu, I mean kazi computational -
katika nyuzi wale nyingi kabla.
Basi hebu aina ya kuimarisha kila kitu katika thread moja.
Basi nini kama tulikuwa na thread moja aina hiyo ya tu unaendelea kuzunguka katika kitanzi na
mara kwa mara hundi alifanya kitu mpya kutokea.
Hivyo kwa mfano, kitu kipya kilichotokea inaweza kuwa na maana mimi got kitu nyuma kutoka
database, au mtu alimtuma me mpya HTTP ombi.
Basi hizo aina ya matukio kutokea, sawa?
>> Na kisha nini siwezi kufanya wakati wale mpya mambo kutokea ni katika thread hiyo
wa utekelezaji, thread hii moja ya utekelezaji, siwezi kuwaita baadhi ya kanuni kwamba
ingekuwa kushughulikia jambo fulani.
Hivyo kwa mfano, kama mimi got kitu nyuma kutoka database, mimi naweza kukimbia yangu
ndogo sehemu ya ukokotooaji wa kwamba kweli tu huandaa kitu
kutuma nyuma kwa mtumiaji.
Hivyo gani kwamba aina ya mantiki?
>> Lakini nini ni kweli matokeo ya hili?
Haki?
Kwa sababu tumekuwa imeandikwa mengi ya kificho kwamba -
na mimi nina kwenda tu kuruka mbele katika slides kama kwamba ni sawa.
Hivyo kama huna akili, mimi tu kwenda kuchukua hatua nyuma.
Hivyo aina hii ya kitu ni aitwaye kitanzi tukio hilo.
OK?
Na ni aina ya msingi Dhana ya Node.js.
>> Kwa hiyo kile Node.js ni kweli kufanya kama mtandao server ni kuna moja thread
kwamba kimsingi ni kwenda kuzunguka katika kitanzi kama wakati aina moja ya chini ya
kofia ya Node.js kwamba mara kwa mara kuangalia, je, sisi kupokea mambo mapya?
Na kisha itakuwa kukimbia handlers kwamba kuweka up.
Lakini swali vizuri kuuliza ni, jinsi gani tunaweza kufanya hili kutokea
pamoja na mambo zilizopo?
>> Basi, mimi kuweka mstari wa C code hapa kwamba kimsingi inaonekana kama ni kufungua
faili, sawa?
Mimi Yeye tu akatoka na albamu.
Hivyo nilikuwa na kufungua wake faili mpya.
Hivyo njia yetu C kanuni kwa ajili ya kazi -
na mimi nadhani sababu mimi waliamua files mara kwa sababu hii ni aina ya kiwango
ya I / O kazi tumefanya katika C katika maana kwamba kuna pembejeo pato.
Hivyo tunatoa wito kanuni hii kwamba gani f hii wazi.
Na kisha juu ya mstari wa pili wetu mpango, tunaweza sasa kazi na f.
>> Hivyo hii itakuwa ni mfano wa kitu hiyo ni kama synchronous au
kuzuia kwa sababu juu ya kwamba mstari wa kwanza huko tunasubiri mpaka sisi
kupata faili wazi.
Kadhalika mstari wa pili, tunajua kwamba sisi wanaweza kufanya kazi kwa f, lakini hii ina maana kwamba
kwamba mstari wa pili kweli hawezi kukimbia mpaka mstari wa kwanza ni kosa.
Je, hiyo mantiki?
>> Hivyo hii itakuwa ni mbaya kwa kuweka katika tukio handler.
Na sababu ya kuwa ni kwamba aina hii ya kusubiri, sawa?
Hivyo hii itakuwa kurejea yetu nyuma kwa kitu kimoja.
Na sasa sisi bila hata kuwa faida ya nyuzi nyingi au
michakato ya sababu tulipata thread moja katika Node.js.
Je, hiyo mantiki kwa kila mtu?
>> Watazamaji: Ngoja.
Basi nini badala ya?
>> KEVIN SCHMID: Oh, hivyo ndiyo.
Hivyo nina kwenda kupata badala.
OK.
Basi nini kama sisi alikuwa na kitu kwamba inaonekana kama hii?
Basi nini kama sasa mimi mwisho f kufungua kidogo?
Hivyo mimi nina kupita katika hiyo hoja kama mbele ya watu wawili.
Mimi bado upendo wimbo mpya kwamba yeye akatoka na.
Lakini mimi nina kupita Jambo la tatu ambayo ni variable hii inayoitwa code.
>> Lakini ni nini code kweli katika muktadha huu?
Je, ni kama mara kwa mara C variable?
Ni kazi, haki?
Na kwamba inaweza kuwa ni kidogo weird kwa sababu Mimi kwa kweli kama sasa kupita
kazi katika kazi nyingine.
>> Hivyo mambo kadhaa kutambua kuhusu hili.
Moja, mimi si kweli wito code kazi.
Hivyo huna kuona kanuni na kushoto paren, paren haki.
Mimi nina kupita tu katika kanuni.
Na katika C, nini hii ingekuwa kweli kufanya ni nipe pointer kwa kuwa halisi
, na kisha hii inaweza kukimbia.
Lakini tu kufikiri juu yake kama wewe ni kupita code kwa kukimbia wakati
faili kwamba ni wazi.
>> Lakini nini maana ya hii ni kwamba sasa wengine wa mpango wangu ambayo inaweza kufanya
mambo mengine, unaweza kuendelea kufanya wengine mambo wakati sisi, si kweli kusubiri, lakini
tu nyuma ya vichwa vyetu kwamba wakati kwamba faili wazi, kukimbia kwamba
code juu.
Je, hiyo mantiki?
>> Na sasa Dhana ya Node.js ni kwamba code katika mambo ya kufanya na f
sehemu lazima pretty mfupi na rahisi na moja kwa moja na si kweli kuwa
computationally kubwa sana.
Ni inaweza kuwa na kufungua faili nyingine, lakini kwamba lazima pia kuwa na pretty haraka
kwa sababu ni lazima tu kusema kufanya f mwingine kufungua na kisha kuwaita kanuni hii nyingine.
>> Hivyo tu kuwa wazi kabisa, f wazi kwamba gani mpya Katy Perry wimbo
done mp3, ambayo inaenda pretty sana kurudi mara moja.
Na kisha tunaweza tu kuendelea kufanya mambo mengine kwa sababu yote sasa f
wito wazi haina ni kuwaambia kimsingi msingi f code wazi kufungua faili hii
na wakati wewe ni kosa kufungua hii faili au wakati kupata nyuma,
kisha kukimbia kwamba kanuni.
Lakini haina kweli kuendesha kwamba kanuni.
Na alikuwa swali?
>> Watazamaji: You walionekana kuashiria chache mara kwamba kuongeza computationally
code kubwa aina ya kuvunja [Inaudible] mfumo wa upepo.
[Inaudible]?
>> KEVIN SCHMID: Hilo ni swali kubwa.
Hivyo mimi kwa kweli na mfano wa jinsi unaweza kuunganisha computationally
code kubwa katika kidogo.
Hivyo wakati sisi kupata code mifano, Mimi utakuwa na uhakika wa kuvuta kwamba moja.
Ni kwamba OK?
Asante.
>> Jina yako alikuwa nini?
>> Watazamaji: Aaron.
>> KEVIN SCHMID Haruni huleta juu sana hatua nzuri, ambayo ni kwamba kama alikuwa
baadhi kubwa code computationally katika kufanya mambo kwa f sehemu, wengine wa
mpango wangu hawezi kukimbia na hawezi kusikiliza kwa maombi mapya au kitu chochote mpaka wote
mambo ambayo ni kumaliza.
Basi, ikiwa mimi nina kuandika Node code kwa ujumla isipokuwa sisi kufanya kitu kama mimi nina kwenda
zinaonyesha baadaye wakati sisi kuangalia code mifano, mimi na kuwa na uhakika kwamba
code yangu haina kufunga up kitanzi hii tukio hilo.
Je, hiyo mantiki?
OK.
Baridi.
>> Hivyo Node.js inatoa mfumo huu kwamba unaweza kujenga tukio haya inaendeshwa
seva na.
Hivyo ina aina hii ya Asynchronous mashirika yasiyo ya kuzuia I / O maktaba, ambapo
kiwango C maktaba kwamba sisi tumekuwa kufanya kazi pamoja, kama kama wewe tu
matumizi yao katika njia ile ile ambayo tumekuwa wamekuwa wakitumia yao kwa f kufungua na
mambo, wale ni kuzuia kwa sababu kwa kweli kuwa na kusubiri kwa
kwamba faili kufungua.
>> Lakini Node.js anatoa hiyo na kimsingi mahusiano ndani ya V8 Google
JavaScript injini ambayo ni sababu kwamba Chrome ni kwa kasi katika usindikaji
JavaScript kwa sababu ina injini hii V8.
Hivyo najua kwamba inaonekana kama mmoja wa wale WWDC mikutano developer kitu
ambapo wao tu kutupa rundo la mambo barua ya idadi ya wasindikaji
na kusema huu ni ya baridi.
Lakini ni baridi kwamba wao walifanya hii kwa sababu JavaScript -
au labda kama wewe si ukoo na JavaScript bado kwa sababu sisi si alikuwa na
mihadhara juu yake -
lakini JavaScript ni kutafsiriwa lugha.
>> Na hii ni hatua muhimu sana.
Hivyo ni muhimu kwa mtandao wetu seva ya kuwa na haraka, sawa?
Na kama tulikuwa kukimbia tu JavaScript kificho kwamba ilitafsiriwa na tu
mkalimani yoyote zamani inaweza kuwa polepole.
Hivyo faida Node kutokana na kuwa na hii super haraka V8 mkalimani.
Na mimi sijui kama wao jina lake ni kwa sababu V8 kofi katika paji la uso
kitu, lakini OK.
>> Hivyo nimekuwa tayari baadhi ya mifano kwa hii.
Baada ya semina hiyo, mimi nina aina ya kwenda majadiliano juu ya jinsi gani unaweza kupata Node kuweka
juu, lakini kwa sasa, mimi tu aina ya kutaka kutembea kwa njia ya baadhi ya mifano code.
Hivyo kama unataka kufuata pamoja, kila chanzo code inapatikana huko.
OK?
>> Basi, mimi itabidi kuondoka URL hii up kwa kidogo.
Na basi mimi nina kwenda tu kwa kubadili ndani ya wastaafu.
Ni kila mtu mzuri na URL hili?
Hivyo nina kwenda kubadili juu ya kwa terminal wangu hapa.
>> Hivyo hapa ni kificho kwamba Nina kwa leo.
Kwa nini si sisi kuanza na simpler.js faili?
Jambo jingine ni kwamba yote haya code ni kwenda kuandikwa katika
JavaScript ambayo wanaweza au inaweza kuwa familiar with.
Nadhani mambo ya wanandoa ni kwamba mengi ya JavaScript code ni aina ya
syntax na muundo ni sawa na C, hivyo unaweza aina ya pick it up kama
wewe kwenda pamoja.
Nimejaribu kuandika mengi ya kuanzia kanuni kwa ajili ya hili katika njia ambayo ni
sawa na C hivyo kwamba ni kidogo zaidi someka.
Lakini kama sisi maendeleo, mimi utakuwa kuonyesha baadhi ya ziada
sifa za JavaScript kwamba ni aina ya baridi.
>> Lakini hebu tuangalie mpango huu sampuli.
Nadhani kila kitu ni kupunguza huko mbali.
Mimi tu anaenda kurekebisha kwamba kweli haraka kama kwamba ni OK au la.
Sijui jambo hili ni kwenda kufanya.
Ni kidogo bora?
Je, unaweza kuona var na stuff?
OK.
>> Hivyo mstari wa kwanza ni kama JavaScript toleo la variable
tamko hilo.
Hivyo tu kuonyesha kitu gani hii kuangalia kama katika C. Hivyo hii ni kama
mimi kusema index sawa na tatu au kitu kama hicho.
Hivyo sikuwa kutaja aina.
JavaScript gani kuwa na aina, lakini ni sana dynamically typed katika asili, hivyo
hakuwa na kutoa aina yoyote ya aina juu yake.
Hivyo tu ana var.
Hiyo ni kama kutofautiana.
OK?
>> Na mimi nina wito HTTP hii kutofautiana.
Na upande wangu wa kulia mkono, nina kujieleza kwamba nataka kuweka katika HTTP.
Na hii anasema zinahitaji HTTP.
Hivyo hii ni aina ya sawa pamoja.
Ni kidogo zaidi kama nguvu zaidi kuliko ni pamoja na kwa maana ya kwamba ni pamoja na
ingekuwa tu nakala na kuweka kichwa faili kwa ajili ya kazi prototypes au
chochote na ufafanuzi aina.
Lakini zinahitaji ni kweli kwenda kupata yetu code.
>> Hivyo unaweza kufikiria ni kama kuagiza baadhi ya kanuni.
Hivyo mahali fulani katika Node.js moduli mfumo au chochote, wote wanayo hii
HTTP server code hivyo mimi nina tu kuchota kwa ajili ya yangu mwenyewe
matumizi binafsi katika mpango huu.
OK?
>> Hivyo basi mimi na kazi hii kwamba nimepata maandishi.
Na taarifa sikuwa na kutaja kurudi aina au aina ya
hoja tena.
Hivyo aina ya huru typed katika kwamba aina ya akili.
Hoja mbili kwamba inachukua katika, ombi na majibu.
Hivyo kwamba ni conceptually aina ya kama familiar na picha kwamba tulikuwa
juu ya screen kabla kwa sababu sisi kupata ombi hili kwamba sisi
na kutoka kwa mtumiaji.
Na kisha sisi kuwa na jibu kwamba tunaweza kuandika mambo ya.
>> Hivyo mstari wa kwanza wa hii haina res.writeHead 200 na kisha hii
aina ya maudhui Nakala wazi.
Basi hebu kipande hii mbali kidogo.
Hivyo basi tu kuzingatia res.write kwa kidogo.
Hivyo kuandika ni kimsingi, na kuandika kichwa, ni baadhi tu ya njia na aina ya kuandika
mambo ya majibu.
OK?
Hivyo kuandika kichwa, kama mtu yeyote anakumbuka kutoka HTTP hotuba, je, guys
kumbuka headers katika juu ya jambo HTTP?
Hivyo kwa nini si mimi tu demo headers halisi haraka.
Ingekuwa kwamba kuwa na manufaa?
Au lazima sisi tu aina ya -
OK.
Uhakika.
>> Hivyo wakati browser yako inakwenda google.com au kitu kama hicho,
kuna kweli kidogo zaidi -
hii ni kama siri -
kuna kama taarifa kidogo zaidi kuja kwa njia ya bomba kuliko tu
search kidogo na kila kitu.
Hivyo kuonyesha hii, mimi nina kwenda kutumia mpango ujulikanao Curl.
OK?
Hivyo hii ni kitu ambacho unaweza kukimbia wakati yako Mac OSX mstari amri au katika
appliance au chochote.
Na hivyo kama mimi Curl HTTP google.com, Mimi kwenda kuona HTML.
Na hii ni, katika haki, tu HTML kwamba aina ya anakwambia
kuelekeza kwa www kama browser yako haina moja kwa moja kushughulikia
redirection.
>> Hivyo hii ni HTML, lakini nina kwenda na kuongeza Curl hyphen hii mimi bendera.
OK?
Na hii ni kwenda kuonyesha mimi headers.
Hivyo hii ni pia habari kwamba anakuja kupitia wakati mimi kupata majibu hii.
OK?
>> Hivyo saa ya juu, unaweza kuona hii HTTP 301 hoja ya kudumu.
Na hii ni aina ya muhimu kwa sababu hii ina maana ya hali ya code.
Hivyo 301 hapa ni hali ya kanuni, ambayo kimsingi ni tu integer
kwamba anasema browser au mtu yeyote ni kusoma hii, kama wewe kujifanya kuwa
wewe ni browser na wewe ni kuona hii, kimsingi sasa kama ukiangalia
kuwa na wewe kuona 301, unajua mimi na kufanya kitu maalum kwa kuzingatia
301, au kitu maalum kilichotokea msingi 301.
Hivyo anasema wakiongozwa kudumu.
>> Na kisha, kimsingi, tuna kundi la thamani jozi muhimu.
Ili tuweze kupata eneo ni www.google.com.
Na kisha aina ya mambo haya mengine yote, lakini kimsingi, nini eneo ni
Usemi huu ni wa eneo mpya ni katika www.google.com.
Hivyo sasa kama wewe kwenda google.com, itabidi aina ya kuona kisakuzi aina ya blink
kwa ajili ya pili na kisha kuelekeza ninyi haki ya nyuma www.google.com.
Hivyo majibu unaweza vyenye haya headers.
>> Na michache ya mambo ya uhakika nje.
Basi hebu kusema sisi walikuwa kweli mafanikio katika kutembelea ukurasa wa mtandao.
Hivyo basi mimi kwenda -
nini tovuti nzuri?
Mimi nina mbaya katika fikra za nzuri Nje papo hapo.
>> Watazamaji: Wikipedia.
>> KEVIN SCHMID: OK.
Hebu kufanya Wikipedia.
Hivyo hapa nilikuwa wakiongozwa.
Oh kusubiri.
Mimi?
Ndiyo, mimi.
OK.
Basi, mimi got kufanya www.
Hivyo nina kwenda kufanya www.
Na kama unaweza kuona, hapa HTML wote kwamba browser bila mchakato
kwa Wikipedia.
>> Lakini kama mimi kuweka scrolling up hapa, kile utaona juu -
wow, kuna mengi ya HTML juu ya Wikipedia -
lakini nini siwezi kuona juu hapa ni hii code 200 hali kama kinyume na
301 niliowaona hapo awali.
Na taarifa kwamba ina nzuri kirafiki OK karibu na hiyo.
Hivyo hii ni kama hali ya nzuri code.
>> Je, kwamba idadi 200 kuangalia familiar?
Ndiyo kwa sababu wakati mimi simpler.js, Niliandika 200 huko.
Hivyo hiyo kimsingi akisema kuwaambia browser au mtu yeyote ni kujaribu kupata
hii kwamba walikuwa na mafanikio.
Au kwamba aina ya kama sisi walikuwa na mafanikio pia.
>> Na kuna aina hii ya syntax maalum katika Javascript kwa ajili ya kutangaza
ramani ya funguo hizi kama aina ya maudhui na maadili haya kama Nakala wazi.
Hivyo kama wewe kuangalia na majibu kwamba sisi got nyuma kutoka Wikipedia kabla ya, -
Mimi nina kwenda kujaribu kitabu juu kidogo kwa kasi -
una funguo hizi kama server na maadili haya Apache.
Basi nimepata funguo na maadili.
Na unaweza bayana hii katika Nodi nini kutuma nyuma.
>> Hivyo hii ni kweli ni aina ya, katika baadhi ya njia, na katika baadhi ya njia siyo
kweli, lakini ni ngazi ya chini kidogo kuliko PHP kificho kwamba unaweza kuwa na
kuandika kwa P kuweka saba kwa sababu PHP na Apache aina ya kutunza baadhi
mambo haya kwa ajili yenu.
Katika PHP, unaweza kupuuza default tabia na kuandika headers yako mwenyewe.
Lakini kwa ajili ya hii, sisi kupata kuandika nje headers yetu wenyewe.
>> Hivyo gani kwamba line mantiki kila mtu, line kuandika kichwa?
OK.
Kutisha.
>> Hivyo basi nini mimi ni mimi mwisho majibu na kusema hello dunia.
OK.
Lakini hiyo ni kazi aitwaye ombi handler.
Basi sasa mimi kwa kweli kuwa na aina ya kufanya kitu na kazi hii, sawa?
>> Hivyo hapa nini mimi ni kuna hii line ambayo haina var server usawa
HTTP.create server, na kisha mimi kupita katika ombi handler.
Hivyo hii ni aina ya Node njia ya kujenga server.
Na taarifa kwamba mimi nina kupita katika ombi handler.
Hivyo hii ni kuwaambia createServer kazi kwamba mimi nataka kufanya mimi
server, na wakati kwamba server inapata majibu, mimi haja ya wewe wito huu
kuomba handler kazi.
OK?
>> Ili line pretty much alimaliza haki mbali.
Hivyo var server line unafanyika baada ya kufanya hivyo pretty much.
I mean, ina kuanzisha baadhi ya ndani hali ya kujua kwamba wewe ingekuwa
wito kwamba ombi handler kazi, lakini si kwenda kukaa huko na
kusema ina user alimtuma mimi ombi bado?
Ina user aliyenituma ombi bado?
Hivyo hana kuzuia.
OK?
>> Basi nini hii kufanya ni kimsingi sasa maduka pointer na kanuni hii,
hii ombi handler kazi, na kisha inakwenda kwamba kanuni wakati mtu
hufanya ombi.
Na kisha sisi kufanya server.listen.
>> 1337 kuna pretty holela.
Sikuwa na sababu hasa kwa kuokota idadi hiyo.
Ni kabisa random.
Lakini kwamba tu bayana bandari.
Hivyo watumishi wengi mtandao utaona kwamba wao kutumia bandari 80 kwa sababu hiyo ni aina
ya kama mkataba.
Basi, ikiwa mimi kwenda kitu kama, Mimi sijui, Wikipedia.org,
na mimi kuweka koloni 8 -
oh wow, huwezi kuona kwamba.
Mimi nina sorry.
Lakini ikiwa ninazifanya Wikipedia -
Mimi itabidi kuandika hapa tu ili ni wazi juu ya kamera.
Lakini kama mimi kuchukua hii katika browser ni pamoja na koloni 80, kwamba unasema kwenda
Wikipedia.org katika bandari ya 80.
Hivyo ni kama jinsi Umoja wa Mataifa ina bandari nyingi kama ambapo unaweza meli
mambo ya aina ya.
Hivyo ni kama kwenda fulani mahali kwenye seva hii.
OK.
>> Hivyo mimi tu waliamua 1337.
Kuna mbalimbali mzima wa idadi kwamba unaweza kuchukua.
Hiyo ilikuwa si kabisa maalum.
>> Lakini nini mimi kwenda kufanya sasa ni mimi nina kwenda kukimbia Node.
Hebu kweli kuingia kwamba wanandoa mistari chini ili uweze kuona.
Mimi nina kwenda kufanya Node, na mimi nina kwenda kukimbia simpler.js.
Na tutaweza majadiliano juu ya jinsi ya kupata Node kuanzisha katika kidogo.
Lakini sasa ni kukimbia tu server.
>> Kwa hiyo, jambo moja tunaweza kujaribu ambayo inaweza si kuwa ya kusisimua ni tunaweza kweli
kujaribu kupata hiyo katika Curl.
Hivyo siwezi kufanya Curl, na yangu mashine ni jeshi la ndani.
Utapata pia kuona hii imeandikwa kama hii wakati mwingine.
Mitaa jeshi na 127.0.0.1 ni aina ya kama kompyuta yako ya nyumbani.
Hivyo ni kama kuzungumza na kompyuta yako mwenyewe.
OK.
>> Na kisha naweza kusema 1337.
Basi, ikiwa mimi kukimbia line hii ya kificho, ni anasema hello dunia.
Na kama nilitaka kuona kwamba mambo ambayo alikuwa aina ya maudhui Nakala wazi au
chochote, mimi naweza hata kuweka hii hapa.
Na taarifa kwamba haina kusema OK.
Na mimi kuwa Nakala wazi.
Na kisha kuna aina ya yote haya mengine mambo ambayo Node kuongeza katika
pale kwa ajili yangu.
Hiyo si super muhimu.
>> I mean, kuna baadhi ya aina ya kiufundi masuala ya wakati huo ni aina
ya baridi kwa majadiliano juu, lakini tu kuonyesha wewe, mimi pia kuwa na uwezo wa
kubadili hizi kote.
Hivyo siwezi tu kuongeza rundo ya mambo kama hayo.
Na kisha sasa, kama mimi kuangalia katika wangu pato, itakuwa hiyo.
Hivyo headers haya yana maana mambo fulani kwa browsers na mambo kama hayo.
>> Na headers unaweza kimsingi kuwaambia kisakuzi jinsi ya kukabiliana na kitu.
Kama umefanya milele habari za kuki kabla, au kama umefanya aliyewahi kuwa annoyed
na ukurasa wa mtandao kuweka cookies, au akageuka juu ya kuzuia cookie au
kitu kama hicho.
Unaweza kweli kuweka cookies katika headers haya.
Basi kuwaambia kisakuzi jinsi ya tabia katika baadhi ya kesi.
OK.
>> Ili kwamba ilikuwa simpler.js.
Je, mtu yeyote una maswali yoyote juu ya kwamba chanzo code faili?
OK.
Baridi.
>> Basi hebu kuondoa r na kwamba na kuangalia simple.js.
Hivyo hii ni pretty much mpango huo.
I just aliandika tofauti kidogo kwa sababu nilitaka aina ya kuonyesha
baadhi ya sifa za JavaScript.
>> Hivyo taarifa kuwa ombi handler kazi umetoweka kabisa.
Oh yep, je, una swali?
>> Watazamaji: Yeah, hoja kwamba ni kupita kwa kuwa
kazi, ni mambo gani hayo?
>> KEVIN SCHMID: Basi hizo JavaScript vitu.
Katika nyaraka Node.js, ni kimsingi anasema mbinu gani ni
inapatikana juu yao.
Sisi tu kutokea kwa kuwa upatikanaji wa njia hii inaitwa kuandika kichwa na mwisho
na mambo kama hayo.
Lakini kuna rundo zima mbinu zaidi.
>> Na kwa mfano, kama mmoja wao hasa juu ya rec, unaweza kufanya
kitu kama rec.method ambayo itakuwa kuwaambia kama ni HTTP kupata au
Maombi HTTP baada na mambo kama hayo.
Hivyo kuna kila aina ya mbalimbali mali, lakini wao ni wote
JavaScript vitu, na wao tu kazi masharti yao kwamba
unaweza kuandika mambo ya.
OK?
>> Hivyo taarifa kuwa ombi handler ni gone kabisa.
Lakini kificho kwamba nilikuwa katika ombi handler bado yupo huko.
Mimi bado na res.writeHead hii na mimi bado res.end hii.
Na nini hii ni mfano wa katika JavaScript ni wazo hili la
bila majina kazi.
na bila ni kama jina kufaa kwa sababu ni halisi haina
na jina.
Hakuna ombi kazi handler huko.
>> Hana jina, lakini bado ni kuchukua hoja.
Hivyo mimi bado got rec na res.
Na mimi bado code.
Hii ni kikamilifu faini JavaScript code.
Hivyo siwezi kutangaza kazi bila wazi kutoa jina.
Ni utata kidogo mara ya kwanza.
Kuna baadhi ya mambo kama muhimu kwamba unaweza kufanya na
kazi hizi bila majina.
Je, mtu yeyote una maswali yoyote juu ya hili, au ni OK tu, kwa sasa,
aina ya kukubali tu kwamba kufanya kitu kimoja?
Yep?
>> Watazamaji: Je, kazi ya kwanza darasa katika JavaScript?
>> KEVIN SCHMID: Wao ni kwanza darasa katika JavaScript.
Na tu kujua kwamba dhana hizi ya kupita katika kazi bila majina kama
hii yanahusu JavaScript kwamba wanaweza kuandika katika mradi wako wa mwisho kwa
kivinjari pia.
Hivyo kwa mfano, katika JavaScript katika browser yako, pia ni kiasi fulani tukio
inaendeshwa kwa maana kwamba yale itabidi na ni wakati mtumiaji Clicks hii
kifungo, nataka wewe kukimbia kanuni hii.
>> Hivyo ni aina moja ya mawazo ya upande wa mteja wakati click mouse au
panya juu ya baadhi ya picha juu yako mtandao ukurasa, kukimbia kanuni hii.
Zinazoweza kuomba kwa watumishi.
Basi hiyo ni aina ya kusisimua kama sababu JavaScript ni kweli
watu kufaa au baadhi nadhani ni lugha zinazofaa kwa aina hii ya
dereva tukio server kwa sababu una kazi hizi bila majina.
Una wazo zima la hii code asynchronous.
OK.
Mtu yeyote una maswali yoyote?
>> OK.
Ili kwamba ilikuwa simple.js.
Hivyo hebu angalia saa moja zaidi au wanandoa zaidi.
Hivyo hii ni sleep.js.
Hivyo ni mtu yeyote ukoo na C kazi usingizi?
Kutoka labda moja ya mihadhara mapema au kitu kama hicho?
>> Hivyo kimsingi unaweza kupita katika Nadhani idadi ya sekunde au kama unatumia U
kulala idadi ya milliseconds au nanoseconds.
Na kimsingi mpango wa kuacha tu mbio kwa kuwa kiasi cha wakati.
Haki?
Na kisha itakuwa kuamka hatimaye na basi itabidi kuendelea kuendesha
mpango.
>> Hivyo server aina hii ya anatoa hisia ya kulala.
Hivyo taarifa kwamba sisi kuwa sawa res.writeHead 200 kwa kichwa kama
kabla, lakini basi sisi ni wito huu kazi kuitwa kuweka timeout.
Kuweka timeout pia ni inapatikana katika kivinjari chako Google Chrome
au Safari au chochote.
Na kimsingi nini ni kufanya hapa ni ni kuchukua katika kazi.
Ilani, tena, ni bila majina kazi.
Basi hiyo ni aina ya baridi kwa sababu tuko kutumia kazi bila majina ndani ya
kazi bila majina ambayo inaweza kuwa ni kidogo weird.
>> Lakini ni kuchukua kazi hiyo, ambayo ni kimsingi akisema - na kwa njia hii
kazi ni katika milliseconds 5000, nataka wewe kutekeleza kazi hiyo ambayo
tu kuishia kukabiliana na anaandika hey.
Hivyo hii inatoa hisia ya kama kulala, lakini njia hii kwa kweli
kazi ni tutaweza kukimbia kwa njia ya mstari huu haraka sana.
Sisi ni kuandika tu kitu.
Na kisha tutaweza pia kukimbia kwa njia ya mstari huu haraka sana.
Hivyo sisi ni si kweli kwenda kusubiri sekunde tano.
Sisi ni kwenda tu kukimbia kanuni hii papo hapo.
>> Na kisha kuna, tena, hii kidogo tukio kitanzi kwamba sasa ina jambo hili
madaftari kwamba kimsingi ni mara kwa mara kwenda kuzunguka katika mzunguko
na kuangalia saa katika moja thread na kusema, ina sekunde tano
kupita bado?
Na kisha wakati anaona kwamba pili mkono ameenda kama sekunde tano au
chochote, basi ni anaamka na anasema, oh, je, mimi na kwa nini?
Oh mimi kuwa na kukimbia kanuni hii.
Na kisha kwenda kukimbia res.end hey.
>> Hivyo tena, sisi ni kamwe kusubiri hapa.
Hivyo si kwamba kanuni hii ndani ya kazi hii ni kwenda kuchukua tano
sekunde kukimbia.
Kanuni hii inakwenda pretty much mara moja, angalau jamaa na
sekunde tano kwamba sisi walikuwa wanazungumza hapo awali kabla ya.
>> Hivyo tu kuonyesha hii katika hatua, Mimi siwezi kufanya Node.sleep.js.
Na alifanya mimi rabishia?
Ikiwezekana.
Sorry.
Hebu kuona nini tunaweza kufanya kwa kurekebisha hii.
OK.
Hivyo dhahiri kutumia Node.js.
Mimi tu kidding.
OK.
Sec moja tu.
OK.
Mimi najua ni nini.
>> Hivyo suala ni kwamba katika tab yangu nyingine hapa, mimi nilikuwa mbio Node tayari juu ya
anwani hiyo, 1337.
Hivyo makosa kwamba hii kurusha, kama sisi kuangalia katika ni kweli kwa karibu, ni anwani katika
kutumia, EADDRINUSE.
Hivyo nilikuwa tayari kutumia 1337 hapa.
Basi, ikiwa mimi kufunga off hii, na kisha mimi sasa kujaribu kukimbia hii, hopefully, kila kitu
itakuwa vizuri.
OK.
Hivyo unaweza tu na jambo moja aina ya kusikiliza kwenye bandari mara moja.
Ufumbuzi mwingine ingekuwa kwa ajili yangu tu hariri mpango huo na kufanya
ni kuwa kama 1338 au kitu kama hiyo.
>> Lakini sasa usingizi ni mbio.
Basi hebu kweli kujaribu nje katika kisakuzi wakati huu kwa sababu ni
unexciting kidogo kuona katika terminal.
Hivyo mimi nina tu kwenda kwa kuwa 127 anwani tena katika 1337.
Na kama unaweza kuona ni -
Mimi sijui kama unaweza - lakini yangu browser kuchukua sana, kwa muda mrefu sana
wakati na shehena au kama sekunde tano.
>> Na kisha baada ya kuwa, hatimaye kumalizika majibu.
Na huwezi kuona ni kwa sababu jambo ni wakiongozwa juu ya kidogo, lakini kama mimi kufanya
hii ndogo kidogo, unaweza kuona inasema hey.
Basi, mimi got hey, lakini baada ya sekunde tano.
Na inaweza kuwa safi kidogo kuona hapa juu ya terminal, hivyo mimi nina
kwenda kufanya -
hebu kufanya katika hapa -
hebu kufanya Curl anwani kwamba tena kwa 1337.
Na mimi tu aina ya kuwa na kukaa hapa kwa sekunde tano.
Lakini taarifa kwamba server wanaweza kukubali majibu mpya.
Hivyo Prints hey.
>> Na demo hii, kimsingi nini Mimi siwezi kufanya katika tab hii nyingine -
hivyo hebu sema mimi kufanya hivyo katika tabo nyingine, Mimi nina kwenda kufanya Curl na sawa
kitu tena.
Na mimi nina kwenda kujaribu kick haya guys mbali kwa wakati mmoja.
Hivyo nina kwenda kwa kufanya hivyo, na mimi nina kwenda mbio juu ya hapa na mimi nina
kwenda kufanya hivyo tena.
>> Na hebu kufanya hivyo ili unaweza kuona wote wawili.
Hiyo moja iliyochapishwa hey na kwamba moja kuchapishwa hey njia yote -
hebu kufanya majaribio tena.
Kwa kweli, hebu kutumia hii hila, kama kwamba ni sawa.
>> Hivyo nina kwenda kwa kutumia kitu shell kwamba inaruhusu mimi kimsingi kukimbia nakala mbili
ya mpango huu katika sambamba.
Hivyo utakuwa kuendesha programu kwanza na programu ya pili katika sambamba.
Hivyo sasa kama mimi vyombo vya habari kuingia, itakuja kufanya ombi hilo pretty much
mara moja kwa wakati mmoja.
Basi hebu kutoa hii risasi.
>> Hivyo sasa taarifa inasema michakato miwili.
Na kama wewe ni curious, kwamba 27,000 Idadi ya kimsingi ni mchakato ID.
Na kisha taarifa, wao kuchapishwa hey kwa wakati mmoja.
Haikuwa kama tulikuwa na kusubiri tano sekunde kwa moja na kisha baada ya
sekunde tano baadaye kupata pili.
Basi hiyo ni aina ya, katika baadhi ya njia, ni si kweli ushahidi, lakini ni
ushahidi Intuitive kwamba siyo tu kama kusubiri sekunde tano na kuzuia
thread nzima.
OK baridi.
>> Basi Haruni aliuliza swali awali kwamba mara, pamoja na nini kama hatuna kufanya kitu -
Yep?
>> Watazamaji: Ngoja.
Jinsi ni kwamba tofauti na printf buffer, ingawa?
Je, si ni moja kwa moja kufanya hivyo?
Kwa nini sisi kuwa na wasiwasi kuhusu hilo?
>> KEVIN SCHMID: Oh, unaweza kusema kwamba wakati mmoja zaidi?
>> Watazamaji: Je, si kama printf buffer kufanya halisi kitu kimoja?
>> KEVIN SCHMID: printf buffer?
>> Watazamaji: Yeah.
OK.
Hakuwa katika moja ya Quizzes walikuwa kuzungumza kuhusu jinsi kama haki printf
kitu fulani na kisha kuwa ni pause moja pili, na kisha kuwa ni kitanzi kumi
mara kwa mara, kutakuwa na kusubiri sekunde kumi na kisha printf kila kitu pamoja?
>> KEVIN SCHMID: Oh, OK.
>> Watazamaji: Je, ni kufanya hivyo kitu kisha katika kesi hii?
>> KEVIN SCHMID: Kwa hiyo swali mara kimsingi katika moja ya Quizzes wa zamani
au kitu, kulikuwa na swali kwamba kimsingi kama wewe kusema magazeti f 10
mambo kwa wakati na kisha akalala kama katika mchakato wa uchapishaji walio nje,
mwishoni kwa sababu fulani, ingekuwa dampo tu wale wote nje ya screen.
Hivyo kuna aina mbili tofauti dhana hapa.
>> Kwa hiyo mimi nadhani jambo moja ni kwamba, katika hili kesi, sisi ni kushughulika na mbili tofauti
aina ya watu kuuliza server kwa ajili ya mambo wakati huo huo.
Na sababu kwamba printf aina ya kusubiri kama kuwa na madampo yote nje
mara moja ni zaidi kuhusiana na jinsi printf aina ya -
hivyo njia printf ni kweli kutekelezwa ni kimsingi ina
kuzungumza na mfumo wa uendeshaji wa kuandika kwamba mambo ya console.
Hivyo hataki kufanya yote ya kwamba mambo mara moja wakati kusema printf
baadhi kamba kwa sababu ambayo inaweza kupata gharama kubwa kama ana
kufanya hivyo kila wakati.
>> Hivyo kama wewe kufanya printf hey, mpango wako wanaweza kweli magazeti kwamba
mara moja kwa console.
Ni anaweza kusema, OK, niliandika yake.
Na kisha aina ya kusubiri kwa ajili yenu kwa kutoa ni kidogo zaidi kabla ya kweli
kuandika nje kwa console.
>> Hivyo sababu kwamba ilikuwa ni kesi -
na ni aina ya unrelated kulala -
ni kwamba usingizi ilikuwa ni aina ya tu sindano huko kuonyesha
ukweli kwamba haina kuandika ni synchronously.
Lakini sababu ya kwamba ni haki utendaji ili huna kwa
kufanya mawasiliano kwamba wengi kwa mfumo wa uendeshaji.
>> Lakini hapa, nini sisi ni kweli kujaribu kufanya na jambo hili usingizi ni show tu
kwamba wakati tuna watu wawili kutembelea tovuti hii, si kwenda kuweka
yao katika line ambapo ni kwenda kusema Mimi na kukusaidia, na kisha wakati mimi nina
kabisa kumaliza kusaidia baada ya haya sekunde tano, basi mimi nina kwenda
kuhamia kwenye mtu mwingine.
Hivyo ombi mtu wa kwanza haina tie up kuwa kitanzi tukio
kama kwamba hufanya akili.
>> Lakini hapa ni kweli mfano ya kitu ambacho kufunga
up kitanzi tukio hilo.
Hivyo hapa ni kazi ya kutisha compute nth Fibonacci.
Ni literally njia mbaya unaweza compute nth Fibonacci idadi.
Na hii ni kweli tu kwa kutambua hii imetoka wapi,
kuna kweli -
I mean, unaweza kujaribu kwenda kutafuta yake - lakini kuna kama blog muda mrefu sana
baada ya kuwa mtu aliandika.
Ni kama moja ya mambo hayo Reddit.
Lakini mtu kukosoa Node.js, na walitumia mfano huu.
Basi, mimi aina ya alitaka kuonyesha wawili tu mitazamo tofauti tu kupata
uelewa wa dhana nyuma ya mambo haya mawili.
>> Lakini hii ni mteule kama tu kutisha, computationally horribly ufanisi
njia kubwa ya compute nth Fibonacci idadi.
Hivyo tu kama upande note, kwa nini ni ni ya kutisha kama katika njia moja?
Yep?
>> Watazamaji: Sema kuanza nje na 1,000.
1,000 kugawanyika katika 999 na 998.
Kila moja ya hii kugawanyika katika mambo mawili.
>> KEVIN SCHMID: Haki.
>> Watazamaji: njia zote chini.
>> KEVIN SCHMID: Hasa.
Hivyo tu kurudia kwa kamera, kama mimi kuwaita fib juu ya kama 1,000 au kitu
kama hiyo, ni wazi si chini ya au sawa na moja hivyo mimi nina kwenda kwa
kwenda kesi hii mwingine, na kisha mimi nina kwenda kuwaita fib 999 pamoja na fib 998.
Na kisha sana pretty yote ya kazi fib 999 gani ni
aina ya katika ngazi hii.
Kama kwenda chini, ni hata zaidi redundant zaidi ya kwamba, lakini kama wewe tu
kufikiri kompyuta fib 998 anapata sisi pretty karibu na fib 999.
Hivyo tunatakiwa kuwa zaidi kidogo wajanja kuhusu jinsi sisi aina ya kutumia tena
haya, lakini sisi siyo Reusing mambo hayo yote.
Hivyo unaweza kufikiria haya makubwa, mkubwa mti tu kwamba kutisha.
>> Lakini anyway, OK.
Ili kwamba ilikuwa fib.
Ni tu inachukua muda kukimbia.
Yep?
>> Watazamaji: [inaudible].
>> KEVIN SCHMID: Oh, unaweza kurudia swali?
>> Watazamaji: [inaudible].
>> KEVIN SCHMID: Oh hivyo hii ni kanuni tu kwamba kinaendelea kuwa aina ya juu ya
server upande.
Hivyo hii si kwenda kupatikana katika browser au kitu chochote.
Ni kimsingi nini sisi ni kwamba wakati user hapa hufanya pretty much
maombi yao tena, wakati sisi aina ya kufanya ombi, sisi ni kwenda kuwaita
kazi hii upande wa server.
Na kisha tutaweza kupata matokeo nyuma kutoka wito kazi hiyo.
Na kisha tutaweza tu magazeti ni kwa mtumiaji.
Hivyo user si kweli kukabiliana kwa kazi hii sana.
>> Ni kwamba swali?
Je, hiyo mantiki?
OK.
Baridi.
>> Hivyo tena, sisi kufanya res.writeHead hii yote kitu ambapo sisi magazeti nje
header.
Na kisha mimi mwisho majibu kwa kufanya Idadi ya uchawi ni fib 45.
Basi hebu kukimbia tu seva hii.
Hivyo nina kwenda kufanya fib.js. Node
Hivyo sasa fib server yangu ni mbio.
>> Na kisha hapa, mimi naenda kufanya moja ya haya.
OK?
Hivyo mimi nina kwenda tu kusema, Curl.
Hivyo ni kwenda kuchukua muda kidogo lakini hopefully hivi karibuni itakuwa kumaliza na
itakuwa magazeti kuwa 45 Retracement idadi.
>> Watazamaji: [inaudible].
>> KEVIN SCHMID: Ni lazima kupata kufanyika pretty hivi karibuni.
Hivyo ni lazima kuchukua sekunde tano hadi sita.
Sijui hiyo ni V8 kuwa super haraka, lakini katika hali yoyote, hii ni
short sana mfano na kwa makusudi inelegant ya mashirika yasiyo ya yasiyo na maana
hesabu.
Hivyo baada ya muda, haina kupata hii.
>> Lakini sasa, nini kama mimi kufanya watu wa aina hiyo majaribio kama kabla ya ambapo mimi kufanya
maombi mbili kwa wakati mmoja?
Hivyo hapa mimi nina kwenda Curl juu ya anwani hiyo, na mimi nina kwenda
kufanya mwingine Curl.
Na kumbukeni sisi alifanya hivyo kwa kulala server, wakati sisi kimsingi alikuwa ni
baada ya sekunde tano, wao pretty sana wote akarudi haki
kote wakati huo huo.
Hivyo ilikuwa si hasa amefungwa up.
>> Lakini hebu jaribu sasa.
OK, hivyo tulipata taratibu zetu mbili.
Kumbuka hizo ni vitambulisho mchakato.
Hii ni kwenda kuwa ni kidogo Awkward wakati sisi duka.
Basi hebu tu kukaa hapa na kusubiri.
>> Mmoja wao hivyo lazima kuja nyuma baada ya kama -
OK, hivyo moja akaja nyuma.
Lakini basi kwa nini si pili moja kurudi bado tu?
Yep?
>> Watazamaji: server hawezi kufanya kitu chochote wakati ni kompyuta kwamba idadi kubwa.
>> KEVIN SCHMID: Haki.
Hivyo majibu mara tu kwamba server kweli hawezi kufanya kitu chochote wakati
ni kompyuta kwamba idadi Fibonacci.
Hivyo sasa mimi tu got mambo wangu wawili nyuma.
Lakini mimi nadhani tu kufikiri kuhusu code zaidi kidogo, ni jinsi gani kazi
na kila kitu.
>> Hivyo kazi hii hapa ni kificho kwamba Nimekuwa aliiambia server hii kuendesha wakati
inapata ombi yanayokuja.
Hivyo ni kwenda tu kukimbia kwa njia hii code nzima, na kisha ni kwenda
nyuma kwa kitanzi tukio na kisha kuendelea kuangalia kwa matukio mapya.
Hivyo kimsingi nini tuna kinachotokea ni server ni
kusikiliza kwa mambo mapya.
mtu wa kwanza anauliza kwa nini 45 ni.
Sisi kuendesha kanuni hii compute yake.
Kanuni hii inachukua takribani tano sekunde sita kukimbia.
Kisha sisi kurudi nyuma kwa kitanzi tukio na kuangalia kwa maombi mapya.
>> Hivyo hii ni mfano wa jinsi, kama wewe na mambo ambayo ni kinachojulikana compute
amefungwa, au matumizi mengi ya mahesabu, si nguvu, lakini kama ni
computationally kubwa -
Nadhani jambo moja kusema juu ya jambo hili ni kuwa kazi hii ni kufanya kabisa,
kwa sehemu kubwa, pretty muhimu kazi ya haki.
muda wote kwamba callback kazi ilikuwa mbio, ilikuwa pretty
sana matumizi ya zaidi ya muda wake tu kompyuta kwamba nth Fibonacci idadi.
>> Lakini sisi tu alikuwa thread moja kushughulikia.
Katika mtindo Apache, wakati watu wawili alitoa ombi kupata fib 45, sisi
bila kuwa na nyuzi mbili tofauti.
Na kisha mfumo wa uendeshaji wa kazi ingekuwa, au ngazi user
kificho kwamba itaweza nyuzi, itakuwa wameweza imekuwa na kipande kuwa hadi juu ya
CPU, au hata kama alikuwa na CPUs nyingi, kuzisambaza sawasawa katika CPUs
ili nao wote wawili walikuwa kumaliza takribani kwa wakati mmoja.
>> Hivyo tu kuonyesha jinsi gani tunaweza aina ya - na hii si kamili jumla
ufumbuzi, lakini aina ya jinsi gani tunaweza kufanya kurudi hapa na kufanya
kidogo kidogo bora.
Basi nini nina hapa ni mpango ujulikanao Fib C. Na hii kimsingi anatumia
mtu mwingine wa modules Node kuitwa Mchakato wa Mtoto Module.
Hivyo nimekuwa pamoja na kwamba katika aina ya juu ya kama napenda kufanya pound ni pamoja na
mtoto process.h au kitu.
Sasa mimi kupata hii variable CP ambayo ina utendaji yangu yote.
>> Hivyo sasa nini mimi kufanya katika kukabiliana hii handler ni mimi nina kuendesha programu hii
dot kufyeka fib 45.
Hivyo kile nimepata kufanyika - na mimi nina kwenda tu hatua nje ya mpango huu kwa
kidogo kidogo -
ni Nimeandika C mpango huo kimsingi computes
nth Fibonacci idadi.
Hivyo hapa tu mpango Nimeandika katika C kwamba computes hii.
Mimi unaweza kukusanya, na siwezi kukimbia kwa amri line.
Na itakuja compute 45 Fibonacci idadi.
>> Hivyo taarifa hiyo tu inachukua pretty much kwa muda mrefu.
Mimi pengine inaweza kutumika dash 03 kwa kuongeza au kitu kama hicho,
lakini mimi tu alifanya kama kawaida compiler mazingira.
Na prints nje.
>> Lakini sasa, je, Mimi aina ya kufanya?
Oh sorry, file makosa.
Basi, mimi kufanya mambo sawa na header kama kabla ya.
Basi mimi kufanya cp.exec hii.
Basi nini hii ni ya kwenda kufanya ni ni kwenda kukimbia mpango huu.
Lakini kwa njia hii kazi ni kuwa siyo kwenda kusubiri kwa
kwamba mpango wa kumaliza.
Ni tu kimsingi anasema kutekeleza mpango huu.
Hivyo kimsingi aina hii katika amri aina ya haraka ya.
>> Na kisha, wakati wewe ni kosa kwa yake, kukimbia kazi hii.
Basi sasa sisi aina ya kupata hii zima kurejeshwa jambo la
kama sisi siyo kusubiri.
Je, hiyo aina ya mantiki?
Yep?
>> Watazamaji: [inaudible]?
>> KEVIN SCHMID: Hivyo hii kwa kweli kufungua njia mpya ya kufanya hivyo.
Hivyo hii ni kweli, katika baadhi ya njia, uovu, si super ubaya, bali ni
muhimu kwa kusema kwamba hii ni aina ya kurejea, kwa upande mmoja, Apache
mfano ambapo sisi kufanya nyuzi na taratibu kwa kila ombi au
mchakato wa kila ombi.
Hivyo hii ni aina ya sawa kwa nini Apache gani.
Katika baadhi ya matukio, itakuwa tu kutumia mpya thread, ambayo ni mwanga kidogo zaidi
uzito zaidi kuliko mchakato, lakini Apache inaweza kuishia forking mchakato mpya
ambayo ni aina ya nini cha kufanya hapa inamuunga kwa kufanya dot slash fib 45.
>> Na kisha katika kesi hiyo, sisi aina ya watapata gharama hiyo ya taratibu.
Hivyo hii ni jambo moja tu unaweza kufanya.
Lakini tu kuonyesha aina hii ya mbio.
Na majadiliano hayo ni kweli tu kwa lengo la kuwasilisha aina hii ya mipango kama
njia ya kuonyesha mitazamo tofauti tofauti katika jinsi ya kubuni watumishi kama hiyo.
Hivyo hii ni kukimbia, na kisha sasa kama mimi kufanya hii tena, I got vitambulisho mbili mchakato.
>> Hebu tu majadiliano juu ya mambo ya uhakika nje.
Hivyo taarifa kwamba wao ni kuongezwa.
Hiyo ni baridi.
Kwa sababu ilikuwa ni 27,122 kabla ya.
Lakini sikia sasa, walikwenda nyuma katika takribani wakati huo huo.
>> Na sasa, swali nzuri ya kuuliza kuhusu kwa nini ni kwamba kesi ni, kazi ambao
ilikuwa ni sasa na aina ya kufanya mambo haya aina ya kucheza haki kwa kila
mengine, matukio haya mawili ya dot slash fib 45 kwamba mimi mbio
au kwamba Node mbio?
Ambao aina ya inafanya haki kwamba wao wote kupata aina ya uwiano kukimbia wakati?
>> Watazamaji: [inaudible].
>> KEVIN SCHMID: Yeah.
Hivyo kimsingi, wakati mimi kufanya dot slash fib 45 au kitu kama hicho, sasa ni
aina ya hadi mfumo wa uendeshaji wa kushughulikia Runtime ya programu hizo.
Na sasa inaweza ratiba yao juu ya CPUs mbalimbali au
Unaweza ratiba yao.
Inaweza kipande up wakati huo moja CPU anapata au kwamba wao kupata
kukimbia kwenye CPU moja.
Ili wazo nyuma yake.
Je, hiyo mantiki kwa kila mtu?
Hivyo sasa Node si kweli kucheza sehemu katika kugawa up kazi hizi.
OK.
>> Ili karibu kwa ajili ya mifano.
Mimi nilitaka kuonyesha jambo moja zaidi kwa sababu mengi ya hii hadi sasa imekuwa
si kabisa super vitendo katika baadhi ya kesi.
Siwezi kufikiria kuja nyumbani baada ya hii kuzungumza na kitu na kusema kama,
vizuri mimi aina ya got nje ya kwamba majadiliano kwamba Mimi siwezi kufanya server Fibonacci kwa
mradi wangu wa mwisho.
Hivyo hapa ni aina tu ya mfano mmoja zaidi kwamba hopefully itakuwa -
labda si, lakini labda - kidogo zaidi aina ya muhimu kwa miradi ya mwisho na
kufikiri mbele kwa mambo kama hayo.
>> Hivyo hii ni chat.js.
Hivyo hii ni aina ya kama baadhi ya sampuli server upande kificho kwamba unaweza kutumia
kuanzisha server ndogo mazungumzo kama unaweza kuwa kuonekana kwenye
Facebook Chat au chochote.
Hivyo Sisemi hii ni kama Facebook Kuzungumza, lakini hii ni aina ya
kama nzuri - labda si nzuri, lakini labda nzuri - kuanzia kwa mazungumzo
server kwa ajili ya tovuti yako kwa ajili ya mradi wa mwisho.
Hivyo hebu tuangalie nini ni kufanya.
>> Hivyo sisi ni kupata kitu hii maalum saa ya juu, hii var SIO
sawa na kuhitaji Socket.IO.
Hivyo hii ni kitu kingine kwamba haina kweli kuja kutunza na
Node lakini unaweza kufunga hiyo.
Ni Node moduli.
Hivyo ni kama baadhi ugani na Node.
>> SocketIO ni kweli kweli aina ya baridi.
Ni uchukuaji kwamba kimsingi nini yake ni ni utapata
kuwa na mkondo hii ya mawasiliano kati ya mtandao
browser na mtandao wa kompyuta.
Hivyo kwa sehemu kubwa hadi sasa, tulikuwa na haya haraka sana pili moja au mbili
mawasiliano pili kati ya mtandao browser na mtandao wa kompyuta.
Hivyo kimsingi kwenda google.com, kupata stuff, kutuma nyuma, na kisha
sisi ni kosa.
Sisi ni kamwe kuzungumza tena mpaka aina ya mtumiaji katika kitu kingine.
>> Lakini nini Socket.IO na aina hiyo ya mambo - na SocketIO ni kweli moja
ya mambo ambayo imejengwa juu ya kama WebSocket ambayo ni aina ya inapatikana
kama sehemu ya HTML5 -
kwamba utapata na hii kuendelea na mjadala.
Na hii ni muhimu sana katika mazungumzo server aina ya kitu kwa sababu ni
aina ya kama mazungumzo ya kuendelea katika baadhi ya njia kwa sababu kama wewe ni kuzungumza
na mtu, unaweza sasa tu kutuma ujumbe chini ya bomba, na kisha
server unaweza kutuma ujumbe chini bomba kwa mtu mwingine uko
kuzungumza na.
Na kisha unaweza kuwa na hii kubadilishana kama hiyo.
>> Basi hiyo ni aina ya nini SocketIO ni nzuri kwa ajili ya.
sababu hiyo SocketIO anatumia WebSockets kama jambo moja ni kwamba katika
Mbali na WebSockets wazi tu ya zamani, pia anafanya tricks baadhi ya kimsingi
kufanya hivyo kisakuzi sambamba.
Hivyo browsers kama Internet Explorer kwa bahati mbaya si msaada WebSockets
haki nje ya sanduku.
Hivyo anatumia baadhi ya aina nyingine ya baridi nadhifu mambo kwa Adobe Flash kuruhusu
wewe kuwa na msaada kisakuzi msalaba.
Hivyo kwamba ni muhimu kweli kweli.
>> Na kwa kweli, najua mimi nina aina ya mbio juu ya wakati hapa, lakini CS50
Kujadili, umewahi kuona kitu kama, mimi sijui, tupu hivyo na hivyo ni
kujibu kwa post hii au kitu kama kwamba, kipengele kwamba?
Hiyo ni SocketIO.
Hivyo wakati mtu kuanza kuandika katika kujadili sanduku kutoa jibu la au
kitu, browser yako haina nini kuitwa katika SocketIO hutoa aina fulani ya
tukio hilo kuwa anasema mtu ni kujibu kwa post hii.
>> Kisha server anasema, OK, je, mimi na kwa nini?
Vizuri sasa nina kuwaambia watu guys nyingine ambao ni juu ya CS50 Jadili kuangalia
wakati wa mwisho hii kwamba mtu ni replying.
Basi hiyo ni aina ya nini SocketIO ni nzuri kwa aina hii ya kuendelea
mkondo wa mazungumzo.
OK.
>> Basi nini nina hapa - na sisi ni tu kwenda kupuuza uhusiano safu
kwa kidogo -
nini mimi ni mimi mwingine kusikiliza.
Hivyo kwamba ni njia tu katika Socket.IO ni akisema, acha tusikie juu ya hii bandari.
Na kisha mimi kufanya hivyo juu ya uhusiano.
Ili tu kimsingi soketi IO ya njia ya kusema, wakati sisi kupokea
uhusiano, Mimi nataka wewe kuendesha kanuni hii.
>> Na taarifa kwamba badala ya kuwa na rec na res kupita katika huko nina soketi.
Na wazo hili soketi kimsingi ni hii jambo ambalo unaweza kuandika na kusoma
na kwamba ina mtumiaji ujumbe ikiwezekana.
Na ujumbe ungependa kutuma unaweza kwenda kwa kuwa soketi.
Je, hiyo mantiki?
Hivyo ni jambo hili kuendelea.
>> Hivyo nini mimi ni mimi wito Socket.emit.
Na kuzalisha inachukua pretty sana hoja mbili.
Hoja ya kwanza ni kamba tu anayewakilisha ya aina ya
kitu wewe ni kutotoa moshi.
Hivyo ajili ya kesi hii, nimekuwa matumizi hii string ujumbe mpya.
Na kwamba kimsingi tu kusema kwamba aina ya jambo hili, nini mimi
kutuma, ni ujumbe mpya.
Hivyo unaweza kusikiliza kwa aina maalum kama ujumbe mpya au chochote
kwa kutumia dot juu.
>> Hivyo uhusiano na user kupelekwa huko, kama ukiangalia ambapo sisi kuwaita dot juu,
wale ni masharti mengine ambayo kuwakilisha aina ya ujumbe user.
Hivyo kimsingi unaweza kuwa na emit hii moja ya aina ya ujumbe haya, na
kisha kufanya kitu katika kukabiliana na moja ya aina ya ujumbe haya
>> Hivyo mimi nina kutotoa moshi ujumbe huu mpya.
Tunakwenda kupuuza connections.push kwa ajili ya pili.
Lakini basi mimi kusema, Socket.on user alimtuma.
Hivyo sasa ni aina ya kama wakati user inapeleka me ujumbe, nataka
wewe kukimbia kanuni hii.
Na taarifa kwamba kazi hiyo bila majina ni kuchukua katika variable hii
aitwaye data ambayo kimsingi kwenda kuwa na ujumbe mtumiaji.
>> Hivyo sasa hebu aina ya majadiliano juu ya uhusiano safu.
Hivyo hii ni iliyoundwa kwa ajili ya mteja mazungumzo ambapo kimsingi kila mtu aina ya katika
sawa mazungumzo chumba.
Hivyo kimsingi, nini tunahitaji kuweka karibu ni baadhi safu kwamba kimsingi
inawakilisha watu wote kuzungumza katika baadhi ya njia, kama kwamba hufanya akili.
Haki?
Kwa sababu tunahitaji kujua ni nani wale guys ni ili tuweze kuwatuma ujumbe
kwamba watu wengine kutuma kwetu.
>> Kwa hiyo kile code hii haina ni wakati mtumiaji inapeleka ujumbe - hiyo ni ya aina ya
tukio hilo -
tunakwenda kukimbia kanuni hii.
Na nini cha kufanya ni sisi kukimbia kwa njia hii safu kwamba sisi kuitwa connections.
Na pretty much kwa kila uhusiano ila moja kwamba yetu, kwamba
nini kanuni hii anasema, sisi kutuma mpya ujumbe na kwamba ujumbe masharti
habari.
>> Hivyo kama wewe taarifa hapa, nini mimi wakati user kwa kweli inafanya mpya
uhusiano ni nimekuwa aliongeza kwa JavaScript.push mbinu, hii ni
kimsingi kusema tu kama kuongeza kwamba soketi kama thamani katika
uhusiano wetu safu.
Hivyo sasa wakati kanuni hii anaendesha, itakuwa kupeleka yale mambo kwa wale hasa
connections.
Hivyo hii inaweza kuwa na mwanzo mzuri kwa ajili ya kufanya mazungumzo server
au kitu sawa.
>> Na aina ya jambo zuri ni kwamba kificho kwamba unaweza kuona hapa kwa kama juu ya na
emit na mambo kama hayo ni sawa na aina ya JavaScript code kuwa wewe
kuandika katika browser ya kiutendaji na server.
Hivyo ndiyo sababu SocketIO ni aina ya nadhifu na muhimu katika njia hiyo.
>> Oh na jambo moja zaidi tu halisi haraka.
Kulikuwa na CS50 mradi wa mwisho mwaka jana kwamba kimsingi kutekelezwa mazungumzo
server katika Node.js.
Nadhani ni Harvardchats.org lakini nina -
OK.
Mimi nina uhakika nini URL, lakini Naweza kutuma kwamba baadaye nje.
Lakini ni aina ya baridi nini unaweza kufanya na Node.js.
>> Hivyo natumaini, kwa ujumla, you guys na hisia nzuri ya nini Node.js ni muhimu
kwa na jinsi gani unaweza labda kuomba kwa mradi wako wa mwisho.
Nitawatumia nje baadhi zaidi rasilimali pamoja na hii.
Na asante kwa kuja.
Asante.
>> [Makofi]