Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのexpress+socket.io
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
inureo
August 26, 2014
Technology
4.1k
1
Share
はじめてのexpress+socket.io
inureo
August 26, 2014
More Decks by inureo
See All by inureo
IGNITION: What we did to provide a high-quality experience
inureo
0
110
SVGアニメーションをやってみたら結構いい感じにできた話
inureo
1
160
リアルタイム回答集計システムを作って、実際にイベントで使った話
inureo
1
860
Other Decks in Technology
See All in Technology
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
280
VespaのParent Childを用いたフィードパフォーマンスの改善
taking
0
120
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
130
データを"持てない"環境でのアノテーション基盤設計
sansantech
PRO
1
150
AI駆動1on1〜AIに自分を育ててもらう〜
yoshiakiyasuda
0
150
Do Ruby::Box dream of Modular Monolith?
joker1007
1
360
「誰一人取り残されない」 AIエージェント時代のプロダクト設計思想 Product Management Summit 2026
mizushimac
1
1.7k
CloudTrail を見つめ直してみる
kazzpapa3
1
120
Keeping Ruby Running on Cygwin
fd0
0
180
20260428_Product Management Summit_tadokoroyoshiro
tadokoro_yoshiro
14
15k
No Types Needed, Just Callable Method Check
dak2
1
2.1k
スクラムの中で AI-DLC workflow を 使い始めて3ヶ月の振り返り
kaminashi
0
130
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Believing is Seeing
oripsolob
1
120
Tell your own story through comics
letsgokoyo
1
900
Rails Girls Zürich Keynote
gr2m
96
14k
Accessibility Awareness
sabderemane
1
100
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Code Reviewing Like a Champion
maltzj
528
40k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
How to Ace a Technical Interview
jacobian
281
24k
Transcript
͡Ίͯͷ express+socket.io גࣜձࣾnanapi ख௩ ྄ @inureo
ಋೖ
ࣗݾհ ख௩ ྄ @inureo גࣜձࣾnanapi ΤϯδχΞ - άϥϑΟοΫσβΠϯͷઐֶߍΛଔۀ - Web੍࡞ձࣾ
5 - 201310݄ nanapiʹΤϯδχΞͱͯ͠ೖࣾ དྷྺ ݩʑσβΠφʔͳͷͰϑϩϯτपΓ͕ಘҙ ϝΠϯͷۀͰRailsʴCoffee+Markup
αʔϏεհ IGNITIONʑͷੜ׆ʹʮܹʯ ʮಈػʯΛ༩͑ΔϝσΟΞͰ͢ɻ ϞοτʔɺίϯςϯπΛ௨ͯ͡ߴ ࣭ͳϢʔβʔମݧΛఏڙ͠ɺಡऀ ͕ೳಈతʹͳΔ͖͔͚ͬʢಈػʣΛ ༩͑Δ͜ͱͰ͢ɻ - ӳޠݍΛத৺ʹల։ -
http://ignition.co
αʔϏεհ
αʔϏεհ എܠΧϥʔબ ه๏Ϧετ
͡Ίͯexpress+socket.ioΛ ͬͯΈͨΒखܰͰָ͔ͬͨ͠ ࠓ͢͜ͱ
ͳΜͰͬͨͷ͔ - LTͷ͓Λ͍͍͔ͨͩͨΒ
- LTͷ͓Λ͍͍͔ͨͩͨΒ - ձࣾͷΠϕϯτͰ͑ͦ͏͔ͩΒ ͳΜͰͬͨͷ͔
- LTͷ͓Λ͍͍͔ͨͩͨΒ - ձࣾͷΠϕϯτͰ͑ͦ͏͔ͩΒ ͳΜͰͬͨͷ͔
ͳΜͰͬͨͷ͔ 10/3ʹ100ਓ͍ۙنͰ5पه೦ύʔςΟΛ͢Δ
ͳΜͰͬͨͷ͔ ΠϕϯτͰΫΠζΛͬͨΓ͢Δ
ͳΜͰͬͨͷ͔ 60ਓنͷஈ֊Ͱ…
ͳΜͰͬͨͷ͔ ճͷूܭ͕ͱͬͯਏ͍
ͳΜͰͬͨͷ͔ ͳͷͰ
ͳΜͰͬͨͷ͔ ͜Μͳײ͡ͷճγεςϜΛWebsocketͰ࣮͍ͨ͠ ήʔϜϚελʔ ΫϥΠΞϯτ
ͳΜͰͬͨͷ͔ ͜Μͳײ͡ͷճγεςϜΛWebsocketͰ࣮͍ͨ͠ ήʔϜϚελʔ ΫϥΠΞϯτ ճͷૹ৴
ͳΜͰͬͨͷ͔ ͜Μͳײ͡ͷճγεςϜΛWebsocketͰ࣮͍ͨ͠ ήʔϜϚελʔ ΫϥΠΞϯτ ਖ਼൱ͷૹ৴ ࣌ؒͰͷճకΊΓ ճͷૹ৴
ௐࠪ
ௐࠪ ࣅͨαʔϏεͳ͍ͷ͔
ϚδΧϧˑϏϯΰ COCORO ௐࠪ http://bingo.mindfree.co.jp/
Quizar ௐࠪ http://www.quizar.info/
ήʔϜϚελʔ - ΫϥΠΞϯτ ͱ͍͏ߏͷαʔϏε2͕ͭ͋ͬͨ ௐࠪ
αʔϏεΛ͍ͯΈΔ ௐࠪ - 3લʹsocket.ioΛͬͯ࡞ΒΕͨͷ - RoutingΛݟΑ͏ͱͨ͠Βαʔόཱ͕ͬͯͳ͔ͬͨ ʢλΠϜΞτʣ - express.jsͳͲͷϑϨʔϜϫʔΫΛ͍ͬͯͳ͔ͬͨ -
αʔϏε͕ಈ͍͍ͯΔͷRoutingࢀߟʹͰ͖ͦ͏ Quizar ϚδΧϧˑϏϯΰ COCORO
ௐࠪ ࢀߟʹͳΔ ιʔε͕ͳ͍…ʂ
ௐࠪ Ͱ͖ͬͱ expressͱ͔͕ ॿ͚ͯ͘ΕΔʂ
ௐࠪ ͱ͍͏Θ͚Ͱ
ϑϨʔϜϫʔΫͷબఆ λΠτϧͲ͓Γ expressͱsocket.ioΛ͏ ௐࠪ
expressΛબΜͩཧ༝ - υοτΠϯετʔϧʹ͋Δ - খنͱ͖͍͍ͯͨͷͰֶशίετ͕ͦ͏ - ษڧձͷexpress͕ओͷ1ͭͩͬͨ ௐࠪ
socket.ioΛબΜͩཧ༝ - υοτΠϯετʔϧʹ͋Δ - ௐͨ݁Ռɺ΄΅Ұ ௐࠪ
2ͭͱϦϑΝϨϯε͕ ଟ͍ͷͰ͍͚ͦ͏ʂ ௐࠪ
࣮ફ
࣮ફ ·ͣͬͺΓ
υοτΠϯετʔϧ Expressೖ (શ21ճ) - ϓϩάϥϛϯάͳΒυοτΠϯετʔϧ http://dotinstall.com/lessons/basic_expressjs ҙ - expressͷόʔδϣϯ͕3ͳͷͰҙʢݱࡏ4ʣ -
ಈըΛݟΔ্Ͱόʔδϣϯมߋ͕བྷΉ෦ɺmiddlewareͷมߋ͙Β͍ɻ LoggerͳͲͷmiddleware͕express͔ΒΓ͚ΒΕͨͷͰɺඞཁʹԠ͡ ͯnpm installɾrequireΛ͢Δײ͡ ࣮ફ
มߋ͜Μͳײ͡ express.hogehogeͷ෦͕֘ ࣮ફ
υοτΠϯετʔϧͰֶΜͩͷ جຊతͳػೳ -Routing -Middleware -View ࣮ફ
Routing ࣮ફ
Middleware ΞΫηεϩάΛ؆қʹग़ྗ putɺdeleteͳͲͷHTTPϝιουͷ࣮ݱ ࣮ફ
ViewͷϨϯμϦϯά ςϯϓϨʔτΤϯδϯͱ߹Θͤͯࢦఆͯ͠ ϨϯμϦϯά ࣮ફ
֎ଆ͚ͩ Ͱ͖ͦ͏ ࣮ફ
࣍ʹ ࣮ફ
socket.ioͷνϡʔτϦΞϧ ࣮ફ
socket.ioͷνϡʔτϦΞϧ Script͜Ε͚ͩ Server side Client side ࣮ફ
Server side Client side socket.ioͷνϡʔτϦΞϧ ଓΛͪड͚Δ ࣮ફ
Server side Client side socket.ioͷνϡʔτϦΞϧ #buttonΛΫϦοΫ ࣮ફ
Server side Client side socket.ioͷνϡʔτϦΞϧ ͜͜Ͱ௨৴ Ҿʹ#mͷvalue ࣮ફ
Server side Client side socket.ioͷνϡʔτϦΞϧ connectionड͚औΓ chat messageड͚औΔ ࣮ફ
Server side Client side socket.ioͷνϡʔτϦΞϧ ಉ͘͡chat messageΛ ͪड͚ɺड৴ ࣮ફ
Server side Client side socket.ioͷνϡʔτϦΞϧ ରͷཁૉʹappend() ϝοηʔδΛදࣔ ࣮ફ
૾Ҏ্ʹ ؆୯ͳAPI…ʂ ࣮ફ
͜Ε͍͚Δ ʢ֬৴ʣ ࣮ફ
·ͱΊ
·ͱΊ - جຊ͙͢ʹཧղͰ͖ΔͷͰֶΜͰΔײָ͕͍͠ - ࠔͬͨ࣌࠷ѱιʔεΛಡΜͰͳΜͱ͔ͳΔɺͣ - express3ͷ࣌ͷใ͕ଟ͍ͨΊɺ༧ΑΓɹɹ ϦϑΝϨϯε͕ͳ͍ - ࣗ༝ߴͯ͘ΞονίονͰ৭ʑॲཧ͕Ͱ͖ΔͷͰ
ࡶʹͳΓͦ͏ - ͜͏ॻ͘ͱ͍͍Αతͳ͓࡞๏͕ͳ͍ͷͰ໎͏ ྑ͔ͬͨ ΈͲ͜Ζ
ຖ1࣌ؒͣͭ৮Δ͚ͩͰ ेָ͠ΊΔͷͰੋඇʂ ͓खܰͰ͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠