$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのexpress+socket.io
Search
inureo
August 26, 2014
Technology
1
4.1k
はじめてのexpress+socket.io
inureo
August 26, 2014
Tweet
Share
More Decks by inureo
See All by inureo
IGNITION: What we did to provide a high-quality experience
inureo
0
100
SVGアニメーションをやってみたら結構いい感じにできた話
inureo
1
160
リアルタイム回答集計システムを作って、実際にイベントで使った話
inureo
1
860
Other Decks in Technology
See All in Technology
LayerX QA Night#1
koyaman2
0
220
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
1
380
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
4
1.8k
日本Rubyの会: これまでとこれから
snoozer05
PRO
5
220
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
410
普段使ってるClaude Skillsの紹介(by Notebooklm)
zerebom
8
2k
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
0
350
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
1
200
ESXi のAIOps だ!2025冬
unnowataru
0
290
SQLだけでマイグレーションしたい!
makki_d
0
1.2k
【U/Day Tokyo 2025】Cygames流 最新スマートフォンゲームの技術設計 〜『Shadowverse: Worlds Beyond』におけるアーキテクチャ再設計の挑戦~
cygames
PRO
2
1.3k
【開発を止めるな】機能追加と並行して進めるアーキテクチャ改善/Keep Shipping: Architecture Improvements Without Pausing Dev
bitkey
PRO
1
110
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
120
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
Exploring anti-patterns in Rails
aemeredith
2
200
How to Think Like a Performance Engineer
csswizardry
28
2.4k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
86
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
96
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
KATA
mclloyd
PRO
33
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Claude Code のすすめ
schroneko
65
200k
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࣌ؒͣͭ৮Δ͚ͩͰ ेָ͠ΊΔͷͰੋඇʂ ͓खܰͰ͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠