>> KEVIN SCHMID: Hello kulħadd.
Merħba lill-seminar CS50 fuq Node.js.
Jisimni Kevin.
Jien TF CS50.
U jien tip simili verament eċitat dwar dan is-seminar.
Naħseb Node.js huwa ħafna jibred.
Nittama li dan is-seminar jista 'jintuża bħala tajba, I raden, katalist għall-
xi wħud mill-proġetti finali tiegħek jekk int interessat fl-użu
xi ħaġa bħal Node.js.
>> Aħna ser tip ta 'jibdew il-seminar off billi biss jitkellem dwar ftit ta 'l-
tip ta 'iskalabbiltà isfond perspettivi tal Node.js, u mbagħad
aħna ser jimxu lejn xi eżempji kodiċi.
U jien ser ikollhom l-kodiċi fuq websajt, u inti tista 'tħares lejn il-kodiċi.
U wara l-seminar, I ser issolvi diskors dwar kif inti tista 'twaqqaf Node.js
fuq il-kompjuter tiegħek.
>> OK.
Mela ejja tibda.
So I raden I biss trid titkellem dwar servers mill-web, tassew, l-ewwel.
U biex tibda din id-diskussjoni, I bażikament għandhom dijagramma li hija minn
l-textbook użat għall-CS61, li bażikament turi l-interazzjoni
bejn proċess klijent, bħall-web tiegħek browser jew simili klijent għan tiegħek jew
xi ħaġa bħal dik, u web server.
Allura dan it-tip ta 'jistenna simili għall- stampa li inti raw fil-lecture fuq
L-ERBGĦA fejn bażikament għandna xi proċess klijent bħall-Google Chrome.
>> U mbagħad pass wieħed huwa l- klijent jibgħat talba.
Allura li jista 'jkun xi ħaġa bħal ukoll ejja żjara, I do not know, CS50.net.
Allura aħna toħroġ it-talba.
U ħadd ma tiftakar l-isem ta ' il-protokoll li tispeċifika kif dik
talba għandha tkun strutturata?
Yep.
>> UDJENZA: [inaudible].
>> KEVIN SCHMID: Eżattament.
Allura huwa simili HTTP, right?
Allura bażikament l-ispeċifikazzjoni għal kemm dik it-talba għandu attwalment jiġu stabbiliti
out, għaliex fl-aħħar tal-ġurnata, ir-rikjesta hija verament ftit simili
string li bażikament jgħid I jixtiequ dan.
U l-ispeċifikazzjoni għal dan hija HTTP.
Allura dak simili protokoll.
>> Mela allura l-server jirċievi dik it-talba.
Allura inti guys jkollhom web server installat fl-appliance CS50.
Huwa Apache.
U din il-ġimgħa meta inti taħdem fuq il-problema sett ta 'seba, inti ser fil-fatt tkun qed taħdem
ma 'dak web server.
Allura l-server jirċievi dik it-talba, u allura għandu tip ta 'tobrox tiegħu
ras u jgħidu bħal ukoll dak nagħmel ma 'dan?
>> Allura bbażati fuq dak tiddeċiedi li tagħmel, allura jista 'tikkuntattja xi tip
ta 'riżorsi.
U li r-riżors jista 'jkun ħafna affarijiet differenti.
Għal waħda, dan jista 'jkun biss bħal file HTML statiku.
Għalhekk jista 'jkun biss bħal xi HTML li huwa simili għall-
website personali tiegħek.
Dan jista 'jkun fajl statika tixbah immaġni jew bħal movie li inti għandek.
Hija tista 'anki jkollha biex jitkellmu għal xi tip ta 'database
bħal database MySQL.
Allura dan mhux dejjem ikollhom jikkomunikaw b'riżorsa, iżda fil-
F'xi każijiet, jista.
>> Mela allura dak li għaddej biex tagħmel wara li huwa għaddej biex
jibgħat lura l-rispons.
U r-rispons għal dan huwa speċifikat ukoll mill HTTP.
Mela allura l-klijent jistgħu jirċievu dan.
Hija tista jkissruha u pproċessata.
U mbagħad ikollok paġna web bħall-Google jew CS50.net jew
x'ikun inti marru għall.
OK?
>> Allura dan huwa l-interazzjoni bażika li aħna qed tmur biex tkun jittrattaw.
U aħna qed pretty ħafna se tkun tiffoka fuq din il-parti tal-
interazzjoni, il-server.
OK.
Kessaħ.
Kulmin xi mistoqsijiet s'issa?
OK.
>> Allura kif għidna, l-web server jirċievi din it-talba HTTP u mbagħad joħroġ dan
Rispons HTTP.
U bħal tkellimna dwar qabel, il- Web server appliance CS50 huwa Apache.
Allura meta inti guys taħdem fuq P stabbiliti seba ', int ser tkun ħidma mal-
Web server Apache.
Int qatt ser ikollhom verament ix-xogħol ma 'Apache direttament wisq.
You tip ta kkonfigurat Apache ftit meta inti tispeċifika l-ospiti virtwali jew
l-vs hosts, u aħna ser terġa ' għal dak fil ftit.
>> Imma bażikament, l-web server Apache mwaqqfa biex taħdem ma 'tip PHP
tal barra mill-kaxxa.
Allura dak li verament jiġri huwa meta inti tmur għal waħda mill-websajts tiegħek simili, ngħidu aħna,
ospitanti lokali index.php slash jew xi ħaġa, huwa browser tiegħek jibgħat dik
talba, u mbagħad Apache huwa kkostitwit hemm u ċifri biex jagħmlu magħha.
U l-azzjoni huwa li tesegwixxi dan il-kodiċi fil-index.php u
allura ibgħatha lura.
Allura hemm dak.
Allura aħna tip ta 'tkellem dwar dan.
Għalhekk tista 'sservi biss fajl statika jew run xi kodiċi PHP u mbagħad kwistjoni
ir-rispons.
>> Mela allura kwistjoni komuni li jistgħu jiġu up huwa tajjeb, kif do we verament jittrattaw
ma jkollhom l-utenti multipli fl-istess ħin?
Allura immaġina jekk inti kienu kitba ta 'web server, jekk kellek web server li
inti kienu jippruvaw jiktbu xi ħaġa bħal C jew xi ħaġa bħal dik,
bażikament inti tista 'taħseb dwar kif hemm jista 'jkun hemm xi tip ta' kodiċi li
jirċievu t-talba, iżda mbagħad dan għandha tagħmel dan ix-xogħol kollu fuqha.
Huwa jista 'jkollhom, per eżempju, ikkuntattja l- database jew xi ħaġa bħal dik.
Dritt?
U allura tagħmel dan it-tip tal-ipproċessar u mbagħad
jintbagħtu lura r-rispons.
Allura dak hu bħall-għolja ħarsa ġenerali livell.
>> Imma din mhix immedjatament ovvju kif inti tista 'tagħmel dan b'mod li żewġ persuni jew
anke 1,000 ruħ jistgħu jaħdmu flimkien ma tiegħek web server fl-istess ħin.
Sabiex is-soluzzjoni li Apache juża tissejjaħ ħjut jew proċessi.
Allura inti tista smajt ta ' dawn it-termini qabel.
Huwa OK jekk int ma, iżda biss jaħsbu dwar ħjut jew proċessi bħala modi għall-
sistema operattiva jew programm utent jew xi ħaġa bħal dik jew web server
għal tip ta 'tesegwixxi multipli affarijiet f'daqqa.
Allura inti tista smajt it-terminu bħal ħjut ta 'eżekuzzjoni.
Allura huwa tip ta 'bħal int tip ta 'multitasking.
>> U jekk inti stajt tidher fuq il-kaxxa tal tiegħek laptop, jew xi ħaġa bħal dik,
multipolari, x'tista 'tagħmel huwa inti tista' run żewġ ħjut differenti fuq differenti
partijiet tal-CPU sabiex ikunu jistgħu attwalment jiġri fl-istess ħin.
Allura dan huwa verament b'saħħtu.
U dan huwa tip ta 'l-Apache soluzzjoni għal din il-problema.
>> Allura hemm tip simili xi kwistjonijiet ma 'dan l-approċċ għalkemm?
So I raden I tip ta kiteb hemmhekk.
Iżda tnejn minnhom xorta ta ' jużaw ħafna ta 'memorja.
Huwa għaljin ħafna biex joħolqu ħajt jew proċess.
>> U l-parti tar-raġunament li huwa biss bħal meta int tmexxi programm C
bħall prinċipali tiegħek u mbagħad li s-sejħiet funzjoni oħra, li għandha
xi tip ta 'munzell.
Allura ħjut jitlob ukoll kompletament munzell separata li
jista 'jkun pjuttost kbar.
U jekk inti tista 'jimmaġina li tunnellata ta' utenti fuq website tiegħek, inti jkollok
ħafna ta 'ħjut differenti.
Li l-lott ta 'stacks biex tiġġestjona u żżomm.
Allura huwa konsum memorja kbar.
>> U mbagħad, ukoll, ejja ngħidu li inti biss għandek CPU wieħed, jew ejja ngħidu li għandek
aktar ħjut minn għandek dawk Multicores.
Dritt?
Mela ejja ngħidu kellek 10 ħjut u inti biss kellhom ħames CPUs.
Inti tip ta 'għandek tagħmel dan ħaġa fejn taqleb bejn l-kurrent
wieħed li taħdem għaliex inti ma tista 'taħdem kollha 10 f'daqqa.
U li sejjaħ swiċċ-kuntest.
U dak it-terminu fil-fatt għandha koppja ta ' f'kuntesti differenti, imma ejja biss
jaħsbu bħala switching bejn żewġ ħjut.
Dan jista 'jkun pjuttost għoljin minħabba bażikament dak li għandek tagħmel huwa inti
ikollhom jieqfu dak li qed isir, ħlief il- istat ta 'dak il-ħajt taħdem, u
imbagħad jaqilbu għal x'imkien ieħor.
>> Allura ma kulħadd tip ta 'tara l- motivazzjoni ta 'għaliex ħjut u
proċessi jista 'jkun ftit goff?
U ma għandek xi mistoqsija?
OK.
Kessaħ.
Kulmin xi mistoqsijiet?
OK.
>> Mela jekk nieħdu pass lura għat-tieni, hemm tip ta 'bħal
osservazzjoni li nistgħu nagħmlu dwar ħafna ta 'applikazzjonijiet web.
U li verament li ħafna minnhom attwalment ma tagħmel li ħafna utli
xogħol ġewwa ta 'ħajt.
Allura jkun xi ħadd beda fuq P stabbiliti seba livelli kollha?
Allura inti tixtieq li forsi jiddeskrivu xi wħud mill-partijiet?
Ħdimt login jew xi ħaġa bħal dik?
>> UDJENZA: Le
>> KEVIN SCHMID: OK.
Qatt f'moħħu.
Jiddispjacini.
Imma bażikament, fil-P sett, int se tkun qed tagħmel ħafna ta 'tip ta'
mistoqsijiet għal database biex nikseb xi informazzjoni minn din id-database.
U dak kodiċi tiegħek se tkun qiegħda tagħmel, dak il-proċess Apache jew
dak il-ħajt Apache se tkun qiegħda tagħmel filwaqt li għandu jikkuntattja lill-
database huwa huwa tip ta 'se tkun hemm seduta u li għaddej biex tkun
stennija għall-database biex iwieġbu.
>> Issa li ma jista 'ħoss bħal dik big jittrattaw għaliex d-database huwa fuq tiegħek
Appliance CS50, right?
Iżda hemm xi tip ta 'network latency hemm għaliex issa l-web
server għandu joħroġ talba tiegħu stess biex d-database li jikkomunikaw ma 'l-
database u mbagħad jiksbu li informazzjoni lura.
Allura issa huwa simili ukoll stenna għalija, jien se jmorru tikseb xi ħaġa mill-
database u allura hemm lott ta 'stennija għaddejjin.
Does li jagħmel sens?
>> U għal xi affarijiet huwa mhux ħażin.
Jekk biss għandha, per eżempju, memorja ta 'aċċess, li mhuwiex simili
horrible latency I / O.
U meta ngħid, I / latency O, liema jien jirreferu għall huwa, bħal kull tip ta 'prodotti simili
output input.
Iżda għall-aċċess għal fajl fuq id-diska, bħal jekk jien ridt li jservu l-HTML statiku
fajl li kien fuq il-paġna web tiegħi jew xi ħaġa bħal dik, I tip ta 'jkollu
tieqaf għal ftit, aqra dan il-fajl minn fuq il-disk, u mbagħad
dak il-proċess jien stennija.
Jien ma jagħmlu xogħol utli.
>> Dan mhux veru ta 'kollox, iżda huwa komuni fl-applikazzjonijiet bħall-P set
seba 'u ħafna ta' applikazzjonijiet li int ma
fil-fatt jagħmlu ħafna ħsieb.
U meta ngħid ħsieb, I tfisser bħal xogħol komputazzjoni.
Xogħol sabiex komputazzjoni tista 'tkun xi ħaġa bħal, ngħidu aħna, int riedu
jiktbu web server li biss komputat in-numru Fibonacci nth.
Dan ma ħoss bħal partikolarment web server gost.
Like I ma jistennewx li sit li jkun il-Facebook jmiss, iżda li hija xi
tip ta 'xogħol komputazzjoni.
>> U tista 'timmaġina li jissostitwixxi dik ma' xi tip ieħor ta 'interessanti
xogħol komputazzjoni.
Ejja ngħidu li inti kienu bil-miktub xi ħaġa dak ikkalkulat l-gradi ta '
separazzjoni bejn żewġ persuni jew xi ħaġa bħal dik.
Allura li ma jinvolvi xi tip ta 'kalkolu, id-dritt?
U anke dakinhar, biex tagħmel li inti xorta jkollhom li jagħmlu ħafna ta 'stennija għall forsi
inti għandek mistoqsija database biex tfittex up li l-ħbieb ma 'min jew
xi ħaġa bħal dik.
Għalhekk hemm dak it-tip ta 'kunċett xogħol ta 'komputazzjoni.
Does li jagħmel sens?
Ħadd ma jkollu xi mistoqsijiet?
>> Oh u I raden I jitqiegħdu chat servers hemm minħabba chat servers huma tip ta '
Eżempju tajjeb ieħor ta 'dan.
A chat server ma jkollux li jagħmlu ħafna ħsieb.
Hija biss għandha tistenna għal nies li jibagħtu messaġġi u mbagħad meta
dawn, jibagħtuhom.
OK?
>> Hekk biss biex terġa darb'oħra, Apache u servers web simili bħal dik fork a
lott ta 'ħjut u proċessi li jista 'jkun it-tip ta' ħela.
So I raden il-kwistjoni li jista 'jiġi minn li għandna bżonn li jkollhom
ħjut u proċessi multipli?
X'jiġri jekk aħna biss kellhom wieħed?
>> Mela ejja tip ta 'żebgħa stampa ta 'dak li dan look like.
Mela ejja jużaw ħajt wieħed biss.
OK?
Hekk biss jimmaġina dan ma 'ħajt wieħed.
>> Ejja nassumu li ma konniex verament qed jagħmlu li ħafna utli - u meta ngħid
utli, I tfisser xogħol komputazzjoni -
f'dawk ħjut multipli qabel.
Mela ejja tip ta 'jikkonsolida kollox fis ħajt wieħed.
Allura dak jekk kellna ħajt wieħed li tip ta 'biss tmur madwar fil-linja u
kontinwament kontrolli għamilt xi ħaġa ġdid jiġri.
Hekk per eżempju, xi ħaġa ġdida ġara jista 'jfisser sibt xi ħaġa lura mill-
-database, jew xi ħadd mibgħut me talba HTTP ġdid.
Għalhekk dawn huma tip ta 'avvenimenti li jiġri, id-dritt?
>> U allura dak I tista 'tagħmel meta dawk ġodda affarijiet jiġri huwa f'dan istess ħajt
ta 'eżekuzzjoni, dan il-ħajt uniku ta' eżekuzzjoni, I tista 'sejħa xi kodiċi li
tieħu ħsieb li ħaġa partikolari.
Hekk per eżempju, jekk sibt xi ħaġa lura mid-database, I tista 'tmexxi tiegħi
parti komputazzjoni żgħira minnha li attwalment biss tipprepara l-ħaġa li
jibgħat lura lill-utent.
Allura ma dak it-tip ta 'jagħmel sens?
>> Imma x'inhuma verament il- implikazzjonijiet ta 'dan?
Dritt?
Għaliex aħna ħadthom bil-miktub ħafna ta 'kodiċi li -
u jien biss ser jaqbżu l quddiem fil-slides jekk dan huwa OK.
Mela jekk inti ma mind, jien biss ser tieħu pass lura.
Allura dan it-tip ta 'ħaġa huwa jissejjaħ avveniment loop.
OK?
U huwa tip tar-Regolament bażiku idea wara Node.js.
>> Allura dak Node.js hu verament tagħmel bħala web server huwa hemm thread wieħed
li bażikament għaddejjin madwar fil-linja bħal filwaqt li xorta waħda ta 'taħt
il-barnuża ta 'Node.js thats kontinwament verifika, ma nirċievu affarijiet ġodda?
U mbagħad se jimxu handlers li inti twaqqaf.
Iżda mistoqsija tajba li nistaqsu hija, kif nistgħu nagħmlu dan iseħħ
ma 'affarijiet eżistenti?
>> So I tpoġġi linja tal-kodiċi C hawnhekk li bażikament qisu huwa ftuħ ta '
fajl, id-dritt?
I Hija biss daħal out ma 'album.
So I kellha tiftaħ fajl ġdid tagħha.
Allura l-mod kodiċi C tagħna għat-tħaddim -
u I raden-raġuni I għażlet files kien għaliex dan huwa tip ta 'kemm
tal-ħidma I / O li aħna ghamilt fis-C fil- sens li hemm output input.
Allura aħna sejħa dan kodiċi li ma dan f miftuħa.
U mbagħad fuq il-linja li jmiss ta 'tagħna programm, aħna issa jistgħu jaħdmu f.
>> Għalhekk dan ikun ta 'eżempju ta' xi ħaġa li simili sinkronika jew
imblukkar għax fuq dik ewwel linja hemm aħna qed jistennew sakemm aħna
jiksbu l-fajl miftuħ.
Allura fit-tieni linja, nafu li aħna jistgħu jaħdmu ma 'f, iżda dan ifisser li
li t-tieni linja ma tistax verament jimxu sakemm l-ewwel linja isir.
Does li jagħmel sens?
>> Għalhekk dan ikun ħażin li jitqiegħed f'avveniment handler.
U r-raġuni għal dan hija li dan it-tip ta 'tistenna, right?
Allura dan jerġgħu lura us back għall-istess ħaġa.
U issa aħna ma jkollhomx lanqas l- benefiċċju ta 'ħjut multipli jew
proċessi għaliex aħna ltqajna ħajt wieħed Node.js.
Does li jagħmel sens għal kulħadd?
>> UDJENZA: Stenna.
Allura x'inhu l-sostituzzjoni?
>> KEVIN SCHMID: Oh, hekk iva.
Hekk jien se tikseb biex is-sostituzzjoni.
OK.
Allura dak jekk kellna xi ħaġa li dehru qishom dan?
Allura dak li jekk issa I editjat f tiftaħ ftit?
Hekk jien tgħaddi fl-istess żewġ argumenti bħal qabel.
I still love-kanzunetta l-ġdida li hi ħareġ bil.
Imma jien tgħaddi terz ħaġa li huwa dan il-varjabbli msejjaħ kodiċi.
>> Imma dak li hu kodiċi attwalment f'dan il-kuntest?
Huwa simili varjabbli regolari C?
Huwa funzjoni, id-dritt?
U li tista 'tkun ftit stramb għaliex Jien fil-fatt bħal issa tgħaddi
jiffunzjonaw fis funzjoni oħra.
>> Affarijiet hekk koppja li wieħed jinnota dwar dan.
Waħda, jien ma attwalment sejħa il-funzjoni kodiċi.
Allura inti ma tara kodiċi ma 'l- paren xellug, paren dritt.
Jien biss tgħaddi fil-kodiċi.
U fl-C, dak li dan ikun fil-fatt jagħmlu hija tagħti me a pointer għal dik attwali
kodiċi, u mbagħad dan jista run.
Iżda biss jaħsbu dwar dan kif int tgħaddi l-kodiċi biex jimxu meta
dan il-fajl ikun miftuħ.
>> Imma dak li dan ifisser huwa li issa l- bqija tal-programm tiegħi li tista 'tagħmel
Jittieħed oħra, tista 'tkompli tagħmel ieħor Jittieħed filwaqt li aħna, ma verament tistenna, iżda
biss ikollhom fil-dahar tal-kapijiet tagħna li meta dik fajl miftuħ, run li
kodiċi fil-quċċata.
Does li jagħmel sens?
>> U issa l-idea wara Node.js hija li il-kodiċi fil-għalf do ma 'f
parti għandu jkun pjuttost qosra u sempliċi u sempliċi u mhux verament tkun
intensiv computationally ħafna.
Jista 'jkollha tiftaħ fajl ieħor, iżda li għandha wkoll tkun pjuttost malajr
għaliex għandu biss jgħidu tagħmel ieħor f tiftaħ u mbagħad sejħa dan il-kodiċi oħra.
>> Hekk biss li tkun kompletament ċara, il-f miftuħa li ma l-kanzunetta l-ġdida Katy Perry
mp3 jsir, li għaddej biex pretty ħafna jirritorna immedjatament.
U allura nistgħu biss tkompli tagħmel Jittieħed oħra minħabba kollha li issa f
sejħa miftuħa ma hija tgħid bażikament l- kodiċi open f sottostanti tiftaħ dan il-fajl
u meta qed isir ftuħ dan fajl jew meta ikollok lura,
imbagħad run dan il-kodiċi.
Iżda dan ma tmexxi effettivament dan il-kodiċi.
U kellek kwistjoni?
>> UDJENZA: Inti deher li jimplikaw ftit drabi li żżid computationally
kodiċi intensiv tip ta 'jkisser il- [Inaudible] misjuqa sistema.
[Inaudible]?
>> KEVIN SCHMID: Li l-kwistjoni kbira.
So I attwalment ikollhom eżempju ta 'kif inti tista 'tintegra computationally
kodiċi intensiv ftit.
Allura meta nikbru għall-eżempji kodiċi, I ser tkun żgur li pull li wieħed.
Huwa li OK?
Grazzi.
>> Liema kien l-isem tiegħek?
>> UDJENZA: Aaron.
>> KEVIN SCHMID: Aaron itella 'ħafna punt tajjeb, li hija li jekk kelli
xi kodiċi intensiv computationally fl l-għalf ma 'f parti, il-bqija tal-
programm tiegħi ma tista 'taħdem u ma tistax tisma' għal talbiet ġodda jew xejn sakemm kollha
li Jittieħed huwa lest.
Mela jekk jien bil-miktub kodiċi Node b'mod ġenerali sakemm nagħmlu xi ħaġa simili jien ser
li tissuġġerixxi aktar tard meta nħarsu lejn l- eżempji kodiċi, I għandek tkun żgur li
kodiċi tiegħi ma jsegwix dan l-avveniment loop.
Does li jagħmel sens?
OK.
Kessaħ.
>> Allura Node.js joffri dan il-qafas li inti tista 'tibni dawn avveniment misjuqa
servers ma.
Għalhekk għandha dawn it-tip ta 'mhux sinkroniku non-imblukkar I / O libreriji, billi
il-libreriji standard Ċ li aħna kont qed jaħdmu ma, bħal jekk inti biss
jużawhom fl-istess mod li konna ilhom jużawhom ma 'f jiftaħ u
Jittieħed, dawk huma imblukkar minħabba inti fil-fatt għandek tistenna għal
dan il-fajl biex tiftaħ.
>> Imma inti Node.js jagħtik li u bażikament rabtiet fis V8 Google
JavaScript magna li hija r-raġuni li Chrome hija tant mgħaġġla fil-proċessar
JavaScript għaliex għandha din il-magna V8.
So I jafu li tinstema 'wieħed minn dawk WWDC konferenzi iżviluppatur ħaġa
fejn huma biss tarmi mazz tal- numru ittra affarijiet għall-proċessuri
u jgħidu dan huwa hekk jibred.
Iżda huwa jibred li dawn ma dan għaliex JavaScript -
jew forsi jekk int ma jkunux familjari mal- JavaScript għadhom għaliex aħna ma kellhomx
l-lectures fuq it -
iżda JavaScript huwa interpretat lingwa.
>> U dan huwa punt importanti wisq.
Allura huwa importanti għall-web tagħna servers li tkun rapida, right?
U jekk konna biss running JavaScript kodiċi li ġiet interpretata biss
kull interpretu qodma jista 'jkun bil-mod.
Benefiċċji hekk Node milli jkollhom dan interpretu V8 super fast.
U jien ma nafx jekk jismu dan minħabba li l-SLAP V8 fil-forehead
ħaġa, iżda OK.
>> Hekk stajt ippreparat xi eżempji f'dan URL.
Wara l-seminar, jien tip ta 'ser jitkellmu dwar kif tista 'tikseb sett Node
up, iżda għal issa, I biss tip ta 'trid jimxu permezz xi eżempji kodiċi.
Mela jekk inti tixtieq li ssegwi tul, l- kodiċi ta 'sors disponibbli hemmhekk.
OK?
>> So I ser tħalli din URL up għal ftit.
U mbagħad jien biss se jaqilbu fil-terminal.
Huwa kulħadd tajba ma dan il-URL?
Hekk jien ser jisswiċċja biex terminal tiegħi hawnhekk.
>> Allura hawnhekk-kodiċi li I jkollhom għal-lum.
Għaliex ma we tibda bil simpler.js fajl?
Il-ħaġa oħra hija li kollha ta 'dan kodiċi se jinkitbu
JavaScript li inti tista 'jew jistgħu ma jkunux familjari magħhom.
I raden ftit affarijiet hija li ħafna tal-kodiċi JavaScript hu t-tip ta '
sintassi u l-istruttura hija simili ħafna għal C, sabiex inti tista 'tip ta' pick it up bħala
tmur flimkien.
Stajt ppruvaw jiktbu ħafna ta 'l- kodiċi bidu għal din b'mod li l-
simili għal C b'tali mod li huwa ftit aktar leġġibbli.
Imma kif aħna l-progress, I ser tkun turi xi wħud mill-addizzjonali
karatteristiċi ta 'JavaScript li huma tip ta 'kessaħ.
>> Imma ejja nħarsu lejn dan il-programm kampjun.
I raden kollox maqtugħ off hemmhekk.
Jien biss se jiffissaw dak reali fast jekk dan OK jew le.
I do not know dak li dan huwa se jagħmel.
Hija li ftit aħjar?
Tista 'tara l var u l-għalf?
OK.
>> Allura l-ewwel linja huwa bħall-JavaScript verżjoni ta 'varjabbli
dikjarazzjoni.
Hekk biss li tenfasizza dak li dan seta ' look like fil C. Allura dan huwa biss bħal
indiċi me qal ugwali tlieta jew xi ħaġa bħal dik.
So I ma tispeċifikax it-tip.
JavaScript ma għandhom tipi, imma hija ħafna dinamikament ittajpjat fin-natura, hekk
ma pprovdew ebda tip ta 'tip fuqha.
Għalhekk biss għandha var.
C'est simili varjabbli.
OK?
>> U jien ssejjaħ dan HTTP varjabbli.
U fuq in-naħa tiegħi lemin, għandi l- espressjoni li nixtieq li jitqiegħdu fil HTTP.
U dan jgħid jeħtieġu HTTP.
Allura dan huwa tip ta 'simili li jinkludi.
Huwa ftit aktar simili b'saħħtu minn jinkludu fis-sens li jinkludu
kien biss kopja u paste tal-header fajl għall-prototipi funzjoni jew
tkun xi tkun id-definizzjonijiet tat-tip.
Iżda jeħtieġu li huwa attwalment għaddejjin biex nikseb us-kodiċi.
>> Allura inti tista 'taħseb bħala jimportaw xi kodiċi.
Allura x'imkien fil-modulu Node.js sistema jew kwalunkwe, dawn għandhom dan kollu
Kodiċi server HTTP hekk jien biss fetching għal tiegħi stess
użu personali f'dan il-programm.
OK?
>> Mela allura I jkollhom din il-funzjoni li stajt bil-miktub.
U l-avviż I ma kellhomx biex jispeċifikaw it-tip ta 'ritorn jew it-tip tal-
argumenti darb'oħra.
Għalhekk tip ta 'loose ttajpjata dak it-tip ta 'sens.
Żewġ argumenti li jieħu fl, it-talba u r-rispons.
Allura dak kunċettwalment tip simili familjari mill-istampa li kellna
fuq l-iskrin qabel minħabba nagħmlu din it-talba li aħna
ikollhom mill-utent.
U allura għandna rispons li nistgħu jiktbu affarijiet li.
>> Allura l-ewwel linja ta 'dan ma res.writeHead 200 u allura dan
plain-test tip kontenut.
Mela ejja biċċa dan apparti ftit.
Mela ejja biss jiffoka fuq res.write għal ftit.
Allura tikteb huwa bażikament, u jiktbu ras, huma biss modi biex tip ta 'tikteb out
affarijiet għall-rispons.
OK?
Allura tikteb ras, jekk xi ħadd jiftakar mill-lecture HTTP, do you guys
ftakar headers fil- quċċata tal-ħaġa HTTP?
Allura għaliex ma I biss demo headers malajr reali.
Ikun li jkun utli?
Jew għandna biss tip ta '-
OK.
Sure.
>> Allura meta browser tiegħek tmur għall google.com jew xi ħaġa bħal dik,
hemm attwalment ftit aktar -
dan huwa simili sigriet -
hemm simili ftit aktar informazzjoni li taqa 'ġol-pajp minn sempliċiment
it-tfittxija ftit u kollox.
Allura biex nuruk dan, jien ser li tuża programm imsejjaħ Curl.
OK?
Allura din hija xi ħaġa li inti tista 'taħdem fuq kmand tal-linja Mac OSX tiegħek jew fil-
appliance jew kwalunkwe.
U hekk jekk jien Curl HTTP google.com, Jien ser tara l-HTML.
U dan huwa, fil-ġustizzja, biss il- HTML li tip ta 'jgħidlek li
idawwru biex www jekk browser tiegħek ma awtomatikament jimmaniġġaw il-
direzzjoni mill-ġdid.
>> Allura dan huwa biss HTML, imma jien ser li żżid mal Curl dan sing I bandiera.
OK?
U dan se juru lili l headers.
Allura dan huwa wkoll informazzjoni li ġejja permezz meta I nikseb dan ir-rispons.
OK?
>> Allura fil-quċċata, inti tara dan HTTP 301 jimxu permanentement.
U dan huwa tip ta importanti għaliex dan jirreferi għall-kodiċi istat.
Allura l-301 hawnhekk huwa l-kodiċi istat, li huwa bażikament biss integer
li jirrakkonta l-browser jew min hu taqra dan, jekk inti nippretendu li
int browser u int tara dan, bażikament issa jekk inti tħares lejn
dak u tara 301, inti taf I jkollhom biex jagħmlu xi ħaġa speċjali bbażati fuq
301, jew xi ħaġa speċjali ġara ibbażata fuq il-301.
Hekk jgħid mċaqalqa b'mod permanenti.
>> U mbagħad, bażikament, għandna mazz ta 'pari valur ewlenin.
Allura irridu jiksbu l-post huwa www.google.com.
U mbagħad it-tip ta 'dan kollu Jittieħed oħra, imma bażikament, dak il-post huwa
qal hija l-lokazzjoni ġdida hija fil www.google.com.
Mela issa jekk inti tmur google.com, inti ser tip ta 'tara l-tip browser ta' blink
għat-tieni u mbagħad jagħtu direzzjoni ġdida lura sal www.google.com.
Allura r-risposti jista 'jkun fihom dawn headers.
>> U l-koppja ta 'affarijiet għall-punt out.
Mela ejja ngħidu aħna kienu attwalment suċċess fil jżuru paġna web.
So let me go għal -
x'hemm 'website' tajba?
Jien ħażin fil-ħsieb ta 'tajba websites fuq il-post.
>> UDJENZA: Wikipedija.
>> KEVIN SCHMID: OK.
Ejja nagħmlu Wikipedija.
So here I kien mċaqalqa.
Oh stenna.
Was I?
Iva, I kien.
OK.
So I ltqajna biex jagħmlu www.
Hekk jien ser jagħmlu www.
U kif tista 'tara, hawn l-HTML li l-browser se jipproċessa
għall-Wikipedija.
>> Imma jekk I iżommu scrolling up hawn, dak I ser tara fil-quċċata -
Ara naqra, hemm ħafna ta ' HTML fuq il-Wikipedija -
imma dak I tista 'tara fil-quċċata hawnhekk huwa dan il-kodiċi 200 istatus kif oppost għad-
301 li rajt qabel.
U tinnota li din għandha sbieħ OK friendly li jmiss lilu.
Allura dan huwa bħall-kodiċi istat tajjeb.
>> Does li għadd 200 tfittex familjari?
Iva għaliex meta I ma simpler.js, I kiteb 200 hemmhekk.
Allura thats bażikament tgħid tgħid il- browser jew min qed tipprova tikseb għal
dan li dawn kienu ta 'suċċess.
Jew li tip simili aħna kienu ta 'suċċess wisq.
>> U hemm dan it-tip ta 'sintassi speċjali fl Javascript għal tiddikjara
Mappa ta 'dawn iċ-ċwievet bħal tip kontenut u dawn il-valuri bħal plain-test.
Mela jekk inti tħares lejn ir-rispons li aħna marret lura mill Wikipedia qabel, -
Jien ser jippruvaw li tiskrollja up ftit aktar malajr -
ikollok dawn iċ-ċwievet bħal server u dawn il-valuri Apache.
Allura inti ħadthom ltqajna keys u l-valuri.
U inti tista 'tispeċifika dan fir- Node dak li jibgħat lura.
>> Allura dan huwa attwalment tip ta ', f'xi modi, u f'ċerti modi mhuwiex
verament, iżda huwa f'livell ftit inqas mill-kodiċi PHP li tista 'tkun
miktub għal P stabbiliti seba għaliex PHP u Apache tip ta 'tieħu kura ta' xi
ta 'dawn l-affarijiet għalik.
Fil PHP, inti tista 'jwarrab l-inadempjenza imġiba billi tikteb headers tiegħek.
Iżda għall-finijiet ta 'dan, irridu jiksbu jiktbu out headers tagħna stess.
>> Allura dan line jagħmel sens li kulħadd, il-linja tikteb ras?
OK.
Tal-biża '.
>> Mela allura dak li nagħmel huwa I jispiċċaw ir-rispons billi qal bonjour dinja.
OK.
Iżda li biss funzjoni imsejħa talba handler.
Allura issa I attwalment ikollhom tip ta 'do xi ħaġa ma 'din il-funzjoni, id-dritt?
>> So here dak I do hemm hu dan linja li tagħmel ugwali għal servers var
HTTP.create server, u mbagħad I jgħaddu fit-talba handler.
Allura dan huwa tip ta 'l-Node mod ta 'ħolqien ta' server.
U tinnota li jien tgħaddi fit-talba handler.
Allura dan huwa javżak il createServer funzjoni li nixtieq li inti tagħmel me a
server, u meta dik server jirċievi rispons, I ħtieġa li inti sejħa dan
jitlob funzjoni handler.
OK?
>> Allura dik il-linja pretty ħafna finituri dritt bogħod.
Allura l-linja server var isir id-dritt wara li inti tagħmel dan pretty ħafna.
I mean, għandu jitwaqqaf xi interna stat li tkun taf li inti jkollha
sejħa dik il-funzjoni talba handler, iżda mhuwiex ser ipoġġu hemmhekk u
jiġifieri għandha l-utent bagħat me talba għadhom?
Has-utent mibgħuta lili talba għadhom?
Għalhekk ma timblukkax.
OK?
>> Allura dak li dan se tagħmel huwa bażikament issa Taħżen pointer għal dan il-kodiċi,
din il-funzjoni handler talba, u mbagħad se jimxu dan il-kodiċi meta xi ħadd
tagħmel talba.
U mbagħad nagħmlu server.listen.
>> L-1337 hemm pretty arbitrarja.
I kellhom ebda raġuni partikolari għall-picking dak in-numru.
Kien totalment każwali.
Iżda li biss jispeċifika l-port.
Allura servers aktar web tkun taf tara li dawn jużaw port 80 minħabba li l-tip
ta bħall-konvenzjoni.
Mela jekk immur għal xi ħaġa simili, I do not know, Wikipedia.org,
u nressaq kolon 8 -
oh naqra, inti ma tistax tara li.
Jien sorry.
Imma jekk I do Wikipedija -
I taf tikteb hawn biss sabiex huwa ċar fuq il-camera.
Imma jekk nieħu dan fi browser ma kolon 80, li jispeċifika mur
Wikipedia.org fil-port 80.
Allura huwa simili kif l-Istati Uniti għandha portijiet multipli bħall fejn inti tista 'vapur
affarijiet li tip ta '.
Allura huwa simili tmur għal din partikolari post fuq dan is-server.
OK.
>> So I biss għażlet 1337.
Hemm firxa sħiħa ta 'numri li inti tista 'pick.
Dan ma kienx totalment speċjali.
>> Imma dak li jien ser tagħmel issa huwa jien ser jimxu Node.
Let me attwalment jidħol li koppja linji isfel sabiex inti tista 'tara.
Jien ser tagħmel għoqda, u jien tmur jiddekorri simpler.js.
U aħna ser nitkellmu dwar kif tikseb Node imwaqqaf fl ftit.
Iżda issa huwa biss running-server.
>> Allura ħaġa waħda nistgħu nippruvaw li ma jistgħux tkun li eċċitanti hija nistgħu attwalment
jippruvaw li jkollhom aċċess għaliha fil Curl.
So I tista 'tagħmel Curl, u tiegħi magna hija ospitanti lokali.
Int ser ikollok ara wkoll dan bil-miktub bħal dan kultant.
Ospitanti lokali u 127.0.0.1 huma tip ta 'prodotti simili tal-kompjuter dar tiegħek.
Allura huwa simili tkellem lil kompjuter tiegħek.
OK.
>> U allura nista 'ngħid 1337.
Hekk jekk I run din il-linja ta 'kodiċi, jgħid bonjour dinja.
U jekk jien ridt li tara li għalf li kellhom test tip kontenut plain jew
kwalunkwe, I jista 'anke tpoġġi dan hawn.
U tinnota li ma jgħidu OK.
And I do jkollhom plain-test.
U allura hemm tip ta 'dan kollu l-oħra għalf li Node se jżid b'mod
hemm għalija.
Li mhux super importanti.
>> I mean, hemm xi tip ta 'teknika aspetti ta 'fuq li huma xorta
ta kessaħ biex jitkellmu dwar, iżda biss biex juru you, I wkoll is-setgħa li
jibdlu dawn madwar.
So I tista 'biss żid mazz ta 'għalf bħal dik.
U allura issa, jekk I tfittex fil tiegħi output, se jkun li.
Allura dawn headers jfissru ċerti affarijiet għal browsers u affarijiet bħal dik.
>> U headers jistgħu bażikament tgħid browser kif tirrispondi għal xi ħaġa.
Jekk inti stajt qatt semgħu cookies qabel, jew jekk inti stajt qatt kienet imdejqa
minn paġna web iffissar cookies, jew mixgħula blokka cookie jew
xi ħaġa bħal dik.
Inti tista 'attwalment tistabbilixxi cookies f'dawn headers.
Allura dawn tell browser kif imġieba f'xi każijiet.
OK.
>> Allura li kien simpler.js.
Ħadd ma jkollu xi mistoqsijiet fuq dan il-fajl kodiċi sors?
OK.
Kessaħ.
>> Mela ejja tneħħi lr minn dak u ħarsa lejn simple.js.
Allura dan huwa pjuttost ħafna l-istess programm.
I biss kiteb dan ftit differenti għaliex jien ridt li sort ta 'qofol
xi karatteristiċi tal JavaScript.
>> Allura avviż li t-talba handler funzjoni totalment spiċċat.
Oh Yep, ma għandek xi mistoqsija?
>> Udjenza: Yeah, l-argumenti li huma mgħoddija għal dak
funzjoni, liema huma?
>> KEVIN SCHMID: Għalhekk dawn huma JavaScript oġġetti.
Fid-dokumentazzjoni Node.js, huwa bażikament jgħid liema metodi huma
disponibbli fuqhom.
Aħna biss jiġri li jkollhom l-aċċess għall- dan il-metodu msejjaħ tikteb ras u t-tmiem
u għalf bħal dik.
Iżda hemm mazz sħiħ aktar metodi.
>> U per eżempju, bħal wieħed minnhom b'mod partikolari fuq rec, inti tista 'tagħmel
xi ħaġa bħal rec.method li se jgħidlek jekk huwa HTTP tikseb jew
Talbiet HTTP post u affarijiet bħal dik.
Allura hemm kull xorta ta 'differenti proprjetajiet, iżda dawn qed kemm
JavaScript oġġetti, u huma biss ikollhom funzjonijiet marbuta magħhom li inti
jista 'jikteb affarijiet li.
OK?
>> Allura avviż li talba handler hija totalment marret.
Iżda l-kodiċi li kelli fit-talba handler għadha hemm.
I għad għandhom dan res.writeHead u I għad għandhom dan res.end.
U dak li dan huwa eżempju ta 'fil- JavaScript huwa din l-idea ta '
funzjoni anonima.
u anonimu huwa bħal isem fitting għal dan minħabba li litteralment ma
għandhom isem.
M'hemm l-ebda talba funzjoni handler fil hemmhekk.
>> M'għandha l-ebda isem, iżda għadu hija tieħu argument.
So I għadhom kisbu rec u res.
And I għad għandhom il-kodiċi.
Dan huwa perfettament multa JavaScript kodiċi.
So I tista 'tiddikjara funzjoni mingħajr espliċitament jtuha isem.
Huwa ftit konfuża għall-ewwel.
Hemm xi affarijiet simili utli li inti tista 'tagħmel
dawn il-funzjonijiet anonimi.
Ħadd ma jkollu xi mistoqsijiet dwar dan, jew hija OK biss li, għal issa,
tip ta 'biss taċċetta li se tagħmel l-istess ħaġa?
Yep?
>> UDJENZA: huma funzjonijiet ewwel klassi JavaScript?
>> KEVIN SCHMID: Huma l-ewwel huma klassi JavaScript.
U biss jafu li dawn il-kunċetti ta ' jgħaddu fi funzjoni anonima bħal
dan japplika għall-JavaScript li inti tista 'tikteb fil-proġett finali tiegħek għal
l-web browser wisq.
Hekk per eżempju, fil-JavaScript fil- browser tiegħek, huwa wkoll kemmxejn avveniment
misjuqa fis-sens li dak li inti ser ikollhom huwa meta l-utent klikks dan
buttuna, nixtieq li tmexxi dan il-kodiċi.
>> Allura huwa l-istess tip ta 'ideat tal- naħa tal-klijent meta click mouse jew huma
maws fuq xi immaġini fuq tiegħek paġna web, run dan il-kodiċi.
Li tista 'tapplika għal servers.
Allura dak it-tip ta bħall-eċċitanti raġuni għaliex JavaScript huwa verament
nies adattati jew xi think it'sa lingwa xierqa għal dan it-tip ta '
server sewwieq avveniment għax għandek dawn il-funzjonijiet anonimi.
Inti għandek l-idea kollha ta ' dan il-kodiċi mhux sinkroniku.
OK.
Kulmin xi mistoqsijiet?
>> OK.
Allura li kien simple.js.
Mela ejja nħarsu lejn wieħed aktar jew koppja aktar.
Allura dan huwa sleep.js.
Allura huwa xi ħadd familjari ma il-funzjoni irqad C?
Minn forsi wieħed mill-lectures preċedenti jew xi ħaġa bħal dik?
>> Allura bażikament inti tista 'tgħaddi fil naħseb a numru ta 'sekonda jew jekk inti qed tuża U
irqad numru ta 'millisekondi jew nanoseconds.
U bażikament il-programm se biss tieqaf għaddej għal dak l-ammont ta 'ħin.
Dritt?
U mbagħad se jinxtegħel eventwalment u allura ser biss tkompli taħdem
il-programm.
>> Allura dan is-server tip ta 'jagħti l-impressjoni ta 'l-irqad.
Allura avviż li aħna għandna l-istess res.writeHead 200 bil-header bħala
qabel, iżda mbagħad aħna qed ssejjaħ dan funzjoni imsejħa timeout sett.
Timeout Set huwa wkoll disponibbli fil- web browser tiegħek Google Chrome
jew Safari jew kwalunkwe.
U bażikament dak li qed jagħmel here huwa Hi tieħu fl funzjoni.
Avviż, għal darb'oħra, huwa ta ' funzjoni anonima.
Allura dak it-tip ta 'kessaħ għaliex aħna qed jużaw funzjoni anonimu fi ħdan
funzjoni anonima li jista 'jkun ftit stramb.
>> Imma hija tieħu dik il-funzjoni, li hija bażikament tgħid - u l-mod kif dan
xogħlijiet huwa 5,000 millisekondi, nixtieq inti biex tesegwixxi dik il-funzjoni li
biss tispiċċa l-rispons u jikteb ħej.
Allura dan tagħti l-impressjoni ta 'prodotti simili irqad, iżda l-mod kif dan attwalment
xogħlijiet hija aħna ser run permezz din il-linja malajr ħafna.
Aħna biss bil-miktub xi ħaġa.
U allura aħna ser wkoll run permezz din il-linja malajr ħafna.
Allura aħna mhux qed attwalment għaddejjin jistennew ħames sekondi.
Aħna biss se jimxu dan il-kodiċi istantanjament.
>> U allura hemm, jerġgħu dan ftit F'każ loop li issa għandha din il-ħaġa
reġistri li bażikament huwa biss kontinwament għaddejjin madwar f'ċirku
u tħares lejn l-arloġġ wieħed Ħajt u qal, għandha ħames sekondi
għadda għadhom?
U allura meta jara li t-tieni idejn mxiet like ħames sekondi jew
tkun xi tkun, allura wakes up u jgħid, oh, dak li nagħmel?
Oh I jkollhom jiddekorri dan il-kodiċi.
U mbagħad li għaddej biex run res.end hey.
>> Għalhekk għal darb'oħra, aħna qed qatt stennija hawn.
Għalhekk mhuwiex li dan il-kodiċi ġewwa ta ' din il-funzjoni se jieħu ħames
sekondi biex jimxu.
Dan il-kodiċi se jimxu pretty ħafna istantanju, mill-inqas relattiva għal
il-ħames sekondi li konna nitkellmu dwar preċedenti qabel.
>> Hekk biss biex juru din fl-azzjoni, I tista 'tagħmel Node.sleep.js.
U ma I mess up xi ħaġa?
Possibilment.
Jiddispjacini.
Ejja naraw dak li nistgħu nagħmlu biex jiffissaw dan.
OK.
Allura definittivament jużaw Node.js.
Jien biss kidding.
OK.
Just wieħed taqs.
OK.
Naf dak li hu.
>> Allura l-kwistjoni hija li fil tab ieħor tiegħi hawn, I kien għaddej Node diġà fuq
l-istess indirizz, 1337.
Allura l-iżball li dan threw, jekk inħarsu lejn din reali mill-qrib, huwa indirizz
użu, EADDRINUSE.
So I diġà kienet qed tuża 1337 hawn.
Hekk jekk I shut dan off, u mbagħad I issa tipprova tmexxi dan, wieħed jittama, kollox
se tkun multa.
OK.
Allura inti tista 'biss ikollha sort ħaġa waħda wieħed jisma fuq port f'daqqa.
Soluzzjoni oħra kien ikun għalija biss jeditjaw dak il-programm u tagħmel
jkun ikun simili 1338 jew xi ħaġa bħal dik.
>> Imma issa sleep tkun qed taħdem.
Mela ejja attwalment jippruvaw it out fil- browser dan iż-żmien, għaliex dan huwa
ftit unexciting biex tara dan fil-terminal.
Hekk jien biss se jmorru għal dak 127 indirizz mill-ġdid fil 1,337.
U jekk inti tista 'tara -
I do not know jekk inti tista '- iżda tiegħi tal-browser tieħu ħafna, twil ħafna
ħin biex tagħbija jew simili ħames sekondi.
>> U mbagħad wara li, finalment ntemmet ir-rispons.
U inti ma tistax tara għaliex il-ħaġa tiġi mċaqalqa ftit, imma jekk nagħmel
dan ftit iżgħar, inti tista 'tara jgħid ħej.
So I ltqajna l-ħej, iżda wara ħames sekondi.
U jista 'jkun nadifa ftit biex tara hawn fuq it-terminal, hekk jien
se tagħmel a -
ejja jagħmlu fil hawn -
ejja jagħmlu Curl li jindirizzaw għal darb'oħra ma 'l-1337.
And I biss tip ta għandekx biex ipoġġu hawn għal ħames sekondi.
Iżda tinnota li l-server tista 'taċċetta tweġibiet ġodda.
Allura prints ħej.
>> U biex demo dan, bażikament dak I tista 'tagħmel f'dan il-tab oħra -
hekk ejja ngħidu I tagħmel dan tab ieħor, Jien ser tagħmel curl u l-istess
ħaġa mill-ġdid.
U jien ser jippruvaw kick dawn guys off fl-istess ħin.
Hekk jien ser tagħmel dan, u jien ser razza fuq hawn u jien
se tagħmel dan mill-ġdid.
>> U ejja tagħmel dan hekk li inti tista 'tara kemm minnhom.
Li wieħed stampat hey u li wieħed stampati hey-triq kollha fil -
ejja tagħmel dan esperiment ġdid.
Attwalment, ejja jużaw dan trick, jekk dan huwa OK.
>> Hekk jien ser tuża ħaġa qoxra li tippermetti me bażikament jimxu żewġ kopji
ta 'dan il-programm b'mod parallel.
Għalhekk ser imexxu l-ewwel programm u it-tieni programm b'mod parallel.
Mela issa jekk I-istampa Daħħal, li għaddej jagħmlu pretty dik it-talba ħafna
istantanju fl-istess ħin.
Mela ejja tagħti dan sparatura.
>> Allura issa avviż li jgħid żewġ proċessi.
U jekk int kurjuż, li 27,000 in-numru huwa bażikament l-proċess ID.
U mbagħad avviż, huma stampati hey fl-istess ħin.
Ma kienx simili kellna nistennew ħames sekonda għal wieħed u mbagħad wara li,
ħames sekondi aktar tard jiksbu t-tieni.
Allura dak it-tip ta ', f'ċerti modi, huwa mhux verament provi, imma hija
evidenza intuwittivi li huwa mhux biss bħal stennija ħames sekondi u l-ibblukkar
l-ħajt kollu.
OK jibred.
>> Allura Aaron titressaq mistoqsija qabel li kien, ukoll dak jekk aħna nagħmlu xi ħaġa -
Yep?
>> UDJENZA: Stenna.
Kif huwa li differenti minn buffer printf, għalkemm?
Ma awtomatikament tagħmel dan?
Għalfejn għandna għalfejn tinkwieta dwar dan?
>> KEVIN SCHMID: Oh, tista ' jgħidu li waħda aktar ħin?
>> UDJENZA: Ma simili buffer printf jagħmlu l-istess ħaġa eżatt?
>> KEVIN SCHMID: Il-buffer printf?
>> UDJENZA: Yeah.
OK.
Ma kienx wieħed mill-kwizzijiet kienu jitkellem dwar kif jekk inti dritt printf
xi ħaġa u mbagħad tara li tkun nieqaf wieħed tieni, u mbagħad ikollok loop għaxar
drabi, dan ser stenna għaxar sekondi u imbagħad printf kollox flimkien?
>> KEVIN SCHMID: Oh, OK.
>> UDJENZA: Huwa tagħmel l-istess Ħaġa allura f'dan il-każ?
>> KEVIN SCHMID: Għalhekk il-kwistjoni kienet bażikament f'wieħed mill-kwizzijiet 'qabel
jew xi ħaġa, kien hemm kwistjoni li bażikament jekk inti tgħidli print f 10
affarijiet fi żmien u mbagħad slept bħal fil il-proċess ta 'stampar dawk barra,
fl-aħħar għal xi raġuni, ikun biss dump dawk kollha fuq l-iskrin.
Allura hemm tip ta 'żewġ differenti kunċetti hawn.
>> So I raden ħaġa waħda hija li, f'dan każ, aħna qed jittrattaw ma 'żewġ differenti
tip ta 'nies li titlob lill-server għall-affarijiet fl-istess ħin.
U r-raġuni li t-tip printf ta ' jistenna bħal dik u miżbliet dan kollu
f'daqqa huwa aktar relatat ma ' kif printf tip ta '-
hekk il-mod printf huwa attwalment implimentat huwa bażikament għandha
kellem lill-sistema operattiva biex jikteb li Jittieħed għall-console.
Għalhekk ma trid tagħmel kollha ta 'dak Jittieħed immedjatament meta inti tgħidli printf
xi string minħabba li jista ' jiksbu għaljin jekk irid
tagħmel dan kull darba.
>> Mela jekk inti tagħmel printf ħej, program tiegħek ma jista 'attwalment jistampaw li
minnufih lill-console.
Huwa jista 'jgħid, OK, I kiteb dan.
U mbagħad it-tip ta stenna għalik biex tagħti hija ftit aktar qabel ma attwalment
miktub it out mal-console.
>> Allura r-raġuni li dan kien il-każ -
u huwa tip ta 'mhux relatati għall-irqad -
huwa li l-irqad kien tip ta 'ftit injettat fil hemm biex juru l-
fatt li ma jiktbu dan synchronously.
Iżda r-raġuni għal dan hija biss prestazzjoni sabiex inti ma għandekx
jagħmlu li ħafna kuntatti lil is-sistema operattiva.
>> Iżda hawnhekk, dak li aħna qed verament tipprova tagħmel ma 'dan il-ħaġa sleep huwa biss juru
li meta għandna żewġ nies li jżuru din il-websajt, huwa mhux ser tpoġġi
minnhom fil-linja fejn huwa se ngħid I jkollhom biex jgħinuk, u mbagħad meta jien
totalment lest tgħinek wara dawn ħames sekondi, imbagħad jien ser
jimxu fuq il-persuna li jmiss.
Jitolbu hekk l-ewwel persuna ma jintrabtu li avveniment loop
jekk dan jagħmel sens.
>> Iżda hawnhekk huwa attwalment eżempju ta 'xi ħaġa li se jorbtu
l-avveniment loop.
Allura hawnhekk funzjoni horrible li kkalkulata l-Fibonacci nth.
Huwa litteralment il-mod agħar inti tista ' jikkomputa-numru Fibonacci nth.
U dan huwa attwalment biss li tirrikonoxxi fejn dan ġew minn,
hemm fil-fatt -
I mean, inti tista 'tipprova tmur jsibuha - iżda hemm bħal blog twila ħafna
wara li xi ħadd kiteb.
Huwa simili wieħed minn dawk l-affarijiet Reddit.
Iżda xi ħadd ikkritikata Node.js, u huma użati dan bħala eżempju.
So I tip ta 'ridt li juru biss inti żewġ perspettivi differenti biss li tikseb
fehim ġenerali tal-kunċetti wara dawn iż-żewġ affarijiet.
>> Iżda dan huwa magħżul bħala biss horrible, computationally horribly ineffiċjenti
mod intensiv biex tiġi kkalkulata l- numru Fibonacci nth.
Hekk biss bħala nota tal-ġenb, għaliex huwa huwa horrible bħall b'xi mod?
Yep?
>> UDJENZA: Say tibda bl 1,000.
1000 qasmiet fil 999 u 998.
Kull ta 'din qasmiet f'żewġ affarijiet.
>> KEVIN SCHMID: Dritt.
>> UDJENZA: It-triq kollha stabbiliti.
>> KEVIN SCHMID: Eżattament.
Hekk biss jirrepetu għall-kamera, jekk I sejħa fib fuq bħal 1,000 jew xi ħaġa
bħal dan, huwa ovvjament mhux inqas minn jew daqs wieħed hekk jien ser
mur każ ieħor, u mbagħad jien ser li jsejħu fib 999 plus fib 998.
U mbagħad pretty ħafna kollha ta 'dak xogħol li fib 999 ma huwa
tip ta 'f'dan il-livell.
Jekk inti tmur l isfel, huwa saħansitra aktar superfluwa minn dan, imma jekk inti biss
jaħsbu computing fib 998 gets us pretty qrib fib 999.
Allura aħna għandhom verament tkun ftit aktar għaqlija dwar kif aħna tip ta 'użu mill-ġdid
dawn, iżda aħna mhux qed jerġgħu jużaw dawn l-affarijiet fil-livelli kollha.
Allura tista 'timmaġina dan ġiganteski, siġra ġiganteski li jinsab biss horrible.
>> Iżda xorta waħda, OK.
Allura li kien fib.
Hija biss tieħu filwaqt li jiddekorri.
Yep?
>> UDJENZA: [inaudible].
>> KEVIN SCHMID: Oh, tista ' irrepeti l-kwistjoni?
>> UDJENZA: [inaudible].
>> KEVIN SCHMID: Oh hekk din hija biss kodiċi li għaddej biex tkun tip ta 'fuq is-
server sekondarji.
Allura dan mhux se jinstabu fil-browser jew xejn.
Huwa bażikament dak li għandna huwa li meta l-utent hawnhekk jagħmel pretty ħafna
talba tagħhom għal darb'oħra, meta aħna tip ta ' jagħmel talba, aħna qed tmur biex sejħa
din il-funzjoni fuq in-naħa server.
U allura aħna ser tikseb ir-riżultat lura mill-sejħa dik il-funzjoni.
U allura aħna ser biss print lill-utent.
Sabiex l-utent ma verament jittrattaw ma 'din il-funzjoni wisq.
>> Kien li l-kwistjoni?
Does li jagħmel sens?
OK.
Kessaħ.
>> Għalhekk għal darb'oħra, nagħmlu dan res.writeHead kollu Ħaġa fejn aħna jistampa
l-header.
U mbagħad I jispiċċaw ir-reazzjoni billi tagħmel in-numru magic hija fib 45.
Mela ejja biss run dan is-server.
Hekk jien ser tagħmel xi fib.js. Node
Allura issa server fib tiegħi qed taħdem.
>> U allura hawnhekk, jien ser biex jagħmlu waħda minn dawn.
OK?
Hekk jien biss se ngħid, Curl.
Allura li għaddej biex tieħu filwaqt li ftit imma nisperaw dalwaqt se jispiċċaw u
se jistampa li 45 Fibonacci numru.
>> UDJENZA: [inaudible].
>> KEVIN SCHMID: għandu nikseb jsir pretty dalwaqt.
Għalhekk għandu jieħu 5-6 sekondi.
I do not know dak li biss V8 tkun super malajr, iżda fi kwalunkwe każ, dan huwa
eżempju qasir ħafna u skop inelegant ta 'non-trivjali
komputazzjoni.
Allura wara filwaqt li, ma jiksbu dan.
>> Imma issa, dak li jekk nagħmel l-istess tip ta ' esperiment bħal qabel fejn I jagħmlu
żewġ talbiet fl-istess ħin?
So here jien ser curl fuq dak l-indirizz, u jien ser
tagħmel Curl ieħor.
U ftakar, meta għamilna dan għall- torqod server, meta aħna bażikament kieku
wara ħames sekondi, huma pretty ħafna kemm daħal lura dritt
madwar l-istess ħin.
Għalhekk ma kienx partikolarment marbuta.
>> Imma ejja tipprova issa.
OK, hekk aħna ltqajna żewġ proċessi tagħna.
Ftakar dawk huma l-IDs proċess.
Din se tkun ftit skomdi filwaqt li aħna stall.
Mela ejja biss jibqgħu hawn u stenna.
>> Allura wieħed minnhom għandu jiġu lura wara simili -
OK, hekk wieħed daħal lura.
Imma allura għaliex ma t-tieni wieħed terga 'lura għadha biss?
Yep?
>> UDJENZA: Il-server ma tistax tagħmel xejn filwaqt li huwa komputazzjoni dak in-numru kbir.
>> KEVIN SCHMID: Dritt.
Allura l-rispons kien biss li l-server verament ma tistax tagħmel xejn filwaqt li
huwa komputazzjoni dak in-numru Fibonacci.
Allura issa I biss ltqajna żewġ affarijiet tiegħi lura.
Imma I raden biss biex jaħsbu dwar il-kodiċi ftit aktar, kif huwa xogħol
u kollox.
>> Allura din il-funzjoni hawnhekk huwa l-kodiċi li Stajt qal dan is-server jiddekorri meta
jirċievi talba ġdida li jkun dieħel.
Allura huwa biss se run permezz ta 'dan kodiċi kollu, u allura huwa se jmorru
Lura għall-avveniment loop u mbagħad kompli verifika għal avvenimenti ġodda.
Allura bażikament dak li aħna jiġri huwa s-server huwa
jisimgħu għal affarijiet ġodda.
L-ewwel persuna titlob dak 45 hu.
We run dan il-kodiċi biex tiġi kkalkulata dan.
Dan il-kodiċi jieħu madwar ħames għal sitt sekondi biex jimxu.
Imbagħad immorru lura għall-avveniment loop u ċċekkja għal talbiet ġodda.
>> Allura dan huwa eżempju ta 'kif, jekk inti affarijiet li huma hekk imsejħa jikkomputa
marbut, jew jużaw ħafna ta 'komputazzjoni, mhux power, iżda simili huma
intensiv computationally -
I raden ħaġa waħda ngħid dwar dan hija li din il-funzjoni qed tagħmel totalment,
għall-parti l-kbira, pretty dritt xogħol utli.
Il-ħin kollu li dak callback funzjoni kien għaddej, kien pretty
ħafna infiq aktar mill-ħin tiegħu biss computing numru li Fibonacci nth.
>> Iżda aħna biss kellhom wieħed ħajt biex jittrattaw.
Fil-mudell Apache, meta żewġ persuni għamlet it-talba biex jiksbu fib 45, aħna
kien ikollha żewġ ħjut differenti.
U mbagħad xogħol tas-sistema operattiva tal- kien ikun, jew il-livell tal-utent
kodiċi li tamministra l-ħjut, kieku stajt kien biex jaqsmu dak fuq il-
CPU, jew anke jekk kellek CPUs multipli, jqassmuhom b'mod uniformi madwar l-CPUs
hekk li dawn kienu tnejn finish bejn wieħed u ieħor fl-istess ħin.
>> Hekk biss biex turi li inti kif nistgħu sort ta '- u din mhix perfetta total
soluzzjoni, iżda xorta ta 'kif nistgħu jagħmlu terga 'lura hawn u tagħmel
ftit aħjar.
Allura dak li għandi hawnhekk huwa programm imsejjaħ Fib C. U dan bażikament juża
ieħor ta 'moduli Node sejjaħ Il-Modulu Proċess Tfal.
Hekk stajt inklużi li fil-tip top ta 'prodotti simili nixtieq do a pound jinkludu
process.h tifel jew xi ħaġa.
Issa I jkollhom aċċess għal din il-varjabbli CP li għandu l-funzjonalità tiegħi.
>> Allura issa dak li qed nagħmel f'dan rispons handler huwa niġri dan il-programm
dot mmejla fib 45.
Allura dak I ghamilt - u jien biss jmorru pass out ta 'dan il-programm għal
ftit -
huwa stajt bil-miktub programm C li bażikament tikkalkula l-
numru Fibonacci nth.
So here biss programm stajt bil-miktub fis-C li tikkalkula din.
I jistgħu josservawha, u I tista 'taħdem hija fil-linja tal-kmand.
U li għaddej biex tiġi kkalkulata l- Numru 45 Fibonacci.
>> Allura avviż hija biss tieħu pretty ħafna sakemm.
I probabilment setgħu użaw sing 03 sa jottimizzaw jew xi ħaġa bħal dik,
imma I biss ma simili regolari settings kompilatur.
U prints out.
>> Imma issa, dak li jien tip ta tagħmel?
Oh sorry, fajl ħażin.
So I jagħmlu l-istess għalf ma l-header bħal qabel.
Imbagħad I jagħmlu dan cp.exec.
Allura dak li dan se tagħmel huwa huwa ser imexxu dan il-programm.
Iżda l-mod kif dan jaħdem huwa li mhuwiex ser tistenna għal
dak il-programm biex jintemm.
Huwa biss bażikament tgħid tesegwixxi dan il-programm.
Allura bażikament din it-tip fil- kmand tip fil-pront ta '.
>> U mbagħad, meta inti qed isir ma ' dan, run din il-funzjoni.
Allura issa għandna tip ta 'nikseb dan ħaġa sħiħa restawrata tal
simili aħna mhux qed jistennew.
Does li tip ta 'jagħmel sens?
Yep?
>> UDJENZA: [inaudible]?
>> KEVIN SCHMID: Allura dan se attwalment jiftħu proċess ġdid biex tagħmel dan.
Allura dan huwa attwalment, f'ċerti modi, ħażen, mhux super-ħażen, imma huwa
importanti li jgħidu li dan huwa tip ta ' jmorru lura, fuq naħa waħda, l-Apache
mudell fejn nagħmlu ħjut u proċessi għal kull talba jew
proċessi għal kull talba.
Allura dan huwa tip ta 'analogu għal dak Apache ma.
F'xi każijiet, hija biss se jużaw ġdid ħajt, li hija ftit aktar dawl
piż minn proċess, iżda Apache tista jispiċċaw forking proċess ġdid
li huwa tip ta 'dak li nagħmlu hawnhekk impliċitament billi tagħmel dot fib slash 45.
>> U allura f'dak il-każ, aħna tip ta 'jġarrbu l-istess spejjeż tal-proċessi.
Allura dan huwa biss ħaġa waħda li tista 'tagħmel.
Iżda biss biex juru dan it-tip ta 'tmexxija.
U dan talk huwa biss verament mmirata jippreżentaw dawn it-tip ta 'programmi bħala
mod biex juru perspettivi differenti dwar kif disinn servers bħal dik.
Allura dan qed taħdem, u allura issa jekk I do dan darb'oħra, I ltqajna żewġ IDs proċess.
>> Ejja biss nitkellmu dwar affarijiet għall-punt out.
Allura avviż li dawn qed inkrementali.
Li jibred.
Minħabba li kien 27,122 qabel.
Imma avviż issa, dawn ġew lura għal madwar l-istess ħin.
>> U issa, mistoqsija tajba li jistaqsi dwar għaliex kienet li l-każ huwa, x-xogħol tiegħu
kien issa li tip ta 'jagħmel dawn l-affarijiet tip ta 'fair play ma' kull
oħra, dawn iż-żewġ każijiet ta ' dot fib slash 45 li I dam
jew li dam Node?
Min tip ta 'jagħmilha ġust li t-tnejn nikseb tip ta bbilanċjati run time?
>> UDJENZA: [inaudible].
>> KEVIN SCHMID: Yeah.
Allura bażikament, meta I do fib dot mmejla 45 jew xi ħaġa bħal dik, issa huwa
tip ta 'sa s-sistema operattiva biex jimmaniġġjaw l-runtime ta 'dawk il-programmi.
U issa tista 'skeda minnhom fuq CPUs differenti jew
tista 'skeda minnhom.
Hija tista 'jaqsmu l-ħin li wieħed CPU gets jew li huma jiksbu
li jimxu fuq CPU wieħed.
Allura dak hu l-idea wara dan.
Does li jagħmel sens għal kulħadd?
Allura issa Node mhuwiex verament playing a sehem qsim dawn il-kompiti.
OK.
>> Allura li kważi għal eżempji.
I biss riedu li juru ħaġ'oħra minħabba ħafna ta 'dan s'issa kien
mhux totalment super prattiku f'xi każijiet.
I jista 'jimmaġina li ġejjin dar wara dan jitkellmu u xi ħaġa u qal simili,
ukoll I tip ta 'ltqajna barra minn dak kellem li I tista 'tagħmel server Fibonacci għal
proġett finali tiegħi.
Allura hawnhekk biss tip ta 'eżempju wieħed aktar li wieħed jittama li jkun -
forsi le, imma forsi - ftit aktar tip ta rilevanti għal proġetti finali u
ħsieb li ġejjin għal affarijiet bħal dik.
>> Allura dan huwa chat.js.
Allura dan huwa tip ta 'bħal xi kampjun server kodiċi ġenb li inti tista 'tuża biex
twaqqaf chat server żgħira bħal inti tista raw fuq l-
Facebook Chat jew kwalunkwe.
Hekk jien ma tgħid dan huwa simili Facebook Chat, iżda dan huwa tip ta '
bħal tajba - forsi mhux tajba, imma forsi punt ta 'tluq għal chat - tajba
server għall-website tiegħek għal proġett finali.
Mela ejja nħarsu lejn dak li qed jagħmel.
>> Allura aħna qed jkollna dan ħaġa speċjali fil-quċċata, din var SIO
ugwali jeħtieġu Socket.IO.
Allura din hija ħaġa oħra li ma attwalment jiġu miġbura mal
Node imma int tista 'tinstalla.
Huwa modulu Node.
Allura huwa biss bħal xi estensjoni Node.
>> SocketIO huwa attwalment verament tip ta 'kessaħ.
Huwa ta 'estrazzjoni li bażikament dak ma ikunx jippermetti li inti
jkollhom dan il-fluss ta 'komunikazzjoni bejn web
browser u web server.
Dan għall-parti l-kbira s'issa, aħna kellna dawn malajr ħafna tieni wieħed jew tnejn
tieni komunikazzjonijiet bejn web browser u l-web server.
Għalhekk huwa bażikament mur google.com, get l-għalf, jibgħat lura, u mbagħad
aħna qed isir.
Aħna qatt ma jitkellem mill-ġdid sakemm l- tipi utent fil xi ħaġa oħra.
>> Imma dak Socket.IO u tip simili ta ' affarijiet - u SocketIO huwa attwalment wieħed
mill-affarijiet li hija mibnija fuq kif WebSocket li huwa tip ta 'disponibbli
bħala parti mill-HTML5 -
li jippermettilek li jkollhom din djalogu kontinwu.
U dan huwa utli ħafna fil-chat server tip ta 'ħaġa għaliex huwa
tip simili ta 'djalogu kontinwu fil- xi modi għaliex jekk int chatting
ma 'xi ħadd, inti tista' issa biss tibgħat Messaġġ l-pajp, u allura l-
server jista 'jibgħat messaġġ l- pajp għall-persuna l-oħra int
chat ma.
U allura inti jista 'jkollhom dan jiskambjaw bħal dik.
>> Allura dak it-tip ta 'dak SocketIO hija tajba għall.
Ir-raġuni li SocketIO juża WebSockets bħala ħaġa waħda hija li fil-
Minbarra WebSockets biss sempliċi qodma, Hija wkoll ma xi tricks li bażikament
jagħmilha browser kompatibbli.
Allura browsers bħall-Internet Explorer sfortunatament ma jsostnux WebSockets
dritt barra mill-kaxxa.
Għalhekk hija tuża xi tip ieħor ta 'kessaħ pulita affarijiet ma Adobe Flash biex jippermettu
inti għandek l-appoġġ browser transkonfinali.
Allura li tassew utli.
>> U fil-fatt, naf jien tip ta ' taħdem fuq żmien hawn, iżda CS50
Iddiskuti, qatt rajt xi ħaġa simili, I do not know, vojta hekk u hekk ikun
tweġiba għal din il-kariga jew xi ħaġa bħal dik, dik il-karatteristika?
Li SocketIO.
Allura meta xi ħadd jibda ittajpjar fid- jiddiskutu kaxxa li jagħmlu tweġiba jew
xi ħaġa, browser tiegħek ma x'hemm imsejħa fl SocketIO jarmi xi tip ta '
F'każ li tgħid xi ħadd tirrispondi għal din il-kariga.
>> Imbagħad il-server jgħid, OK, dak li nagħmel?
Ukoll issa I jkollhom li tgħid dawk guys oħra li huma CS50 Iddiskuti tfittex
fuq din il-kariga li xi ħadd tweġiba.
Allura dak it-tip ta 'dak SocketIO hu tajba għal, dan it-tip kontinwu ta '
nixxiegħa ta 'djalogu.
OK.
>> Allura dak li għandi hawn - u aħna qed biss se jinjora l-array konnessjonijiet
għal ftit -
dak li nagħmel huwa I do ieħor jisimgħu.
Allura dan huwa biss il-mod li Socket.IO hija qal ejja jisimgħu fuq dan il-port.
U mbagħad I jagħmlu dan fuq il-konnessjoni.
Allura dak biss bażikament Socket IO mod ta 'tgħid, meta nirċievu
konnessjoni, nixtieq biex imexxu dan il-kodiċi.
>> U tinnota li minflok rec u res għaddew fil hemm għandi Socket.
U din l-idea Socket huwa bażikament dan ħaġa li inti tista 'tikteb u taqra li
minn li għandha l-l-utent messaġġi possibilment.
U l-messaġġi li inti tibgħat tista 'tmur permezz ta' dak Socket.
Does li jagħmel sens?
Allura huwa dan ħaġa kontinwa.
>> Allura dak li nagħmel huwa I call Socket.emit.
U jarmu tieħu pretty ħafna żewġ argumenti.
L-ewwel argument huwa string biss li jirrappreżenta t-tip ta '
Ħaġa int jarmu.
Allura għal dan il-każ, stajt użu dan il-messaġġ ġdid sekwenza.
U li jinsab biss bażikament qal li it-tip ta 'dan il-ħaġa, dak li jien
jibgħat, huwa messaġġ ġdid.
Allura inti tista 'tisma għal tipi speċifiċi bħall messaġġ ġdid jew kwalunkwe
bl-użu dot fuq.
>> Allura konnessjoni u l-utent mibgħuta hemmhekk, jekk inti tħares lejn fejn aħna sejħa dot fuq,
dawk huma kordi oħra li jirrappreżentaw tipi ta 'messaġġi utenti.
Allura huwa bażikament inti jista 'jkollhom dan jarmu wieħed minn dawn it-tipi messaġġ, u
imbagħad tagħmel xi ħaġa bi tweġiba għal wieħed minn dawn it-tipi ta 'messaġġi
>> Hekk jien li jarmi dan il-messaġġ ġdid.
Aħna ser jinjoraw connections.push għat-tieni.
Imma mbagħad I say, utent Socket.on mibgħuta.
Allura issa huwa tip ta 'bħal meta l- utent jibgħat me messaġġ, nixtieq
inti biex imexxu dan il-kodiċi.
U tinnota li din il-funzjoni anonima qed jieħu dan il-varjabbli
imsejħa data li hija bażikament se li jkollha messaġġ l-utent.
>> Tip Allura issa ejja diskors dwar il-konnessjonijiet array.
Allura dan huwa ddisinjat għal klijent chat fejn bażikament kulħadd tip ta 'prodotti fil-
l-istess chat room.
Allura bażikament, dak li għandna bżonn li jżommu madwar xi array li bażikament
jirrappreżenta lill-poplu kollu chat fil F'xi metodi, jekk dan jagħmel sens.
Dritt?
Għaliex għandna bżonn li jkunu jafu min dawk guys huma hekk nistgħu tibgħathom l-messaġġi
li nies oħra tibgħat lilna.
>> Allura dak li dan il-kodiċi ma huwa meta utent jibgħat messaġġ - dak l-tip ta '
l-avveniment -
aħna qed tmur biex imexxu dan il-kodiċi.
U dak li nagħmlu huwa we run permezz ta 'dan array li għandna imsejħa konnessjonijiet.
U pretty ħafna għal kull konnessjoni ħlief il-wieħed li tagħna, li l-
dak li dan il-kodiċi jgħid, nibagħtu ġdida messaġġ ma 'dak il-messaġġ mehmuża
informazzjoni.
>> Mela jekk tinnota hawn, dak li għamilt meta l-utent fil-fatt jagħmel ġdida
konnessjoni hija Stajt miżjud ma 'l- Metodu JavaScript.push, dan huwa
bażikament biss qal bħal żid li Socket bħala valur fis
konnessjonijiet firxa tagħna.
Allura issa meta dan il-kodiċi runs, se tibgħat affarijiet li dawk partikolari
konnessjonijiet.
Allura dan jista 'jkun bidu tajjeb biex issir chat server
jew xi ħaġa simili.
>> U t-tip ta 'ħaġa jibred hija li l- kodiċi li tara hawn simili għal fuq u
jarmu u għalf bħal dik hija l-istess tip ta 'kodiċi JavaScript li inti
jikteb fil-browser biex jinteraġixxu mal-server.
B'tali mod li għalhekk SocketIO huwa tip ta ' pulita u utli fil-mod.
>> Oh u biss ħaġa waħda aktar reali malajr.
Kien hemm proġett finali CS50 aħħar sena li bażikament implimenta chat
server fil Node.js.
Naħseb li huwa Harvardchats.org imma jien mhux -
OK.
M'inix ċert liema l-URL huwa, iżda I tista 'tibgħat dan out wara.
Iżda huwa tip ta 'kessaħ dak inti tista 'tagħmel ma Node.js.
>> So I hope, b'mod ġenerali, inti guys jkollhom sens tajjeb ta 'dak Node.js huwa utli
u kif inti tista 'tapplika forsi għall-proġett finali tiegħek.
I ser tkun qed tibgħat out ftit aktar riżorsi flimkien ma 'dan.
U nirringrazzjak għall ġejjin.
Grazzi.
>> [Applause]