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
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
850
Other Decks in Technology
See All in Technology
kubellが考える戦略と実行を繋ぐ活用ファーストのデータ分析基盤
kubell_hr
0
140
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.1k
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
420
クラウドセキュリティを支える技術と運用の最前線 / Cutting-edge Technologies and Operations Supporting Cloud Security
yuj1osm
2
280
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
350
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
210
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
140
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
1.5k
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
0
290
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
460
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
1
170
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
2.9k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
We Have a Design System, Now What?
morganepeng
53
7.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
187
54k
Six Lessons from altMBA
skipperchong
28
4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Music & Morning Musume
bryan
46
6.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.5k
What's in a price? How to price your products and services
michaelherold
246
12k
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࣌ؒͣͭ৮Δ͚ͩͰ ेָ͠ΊΔͷͰੋඇʂ ͓खܰͰ͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠