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
今更 WebSocket で遊ぶ話 #javado
Search
Kihara, Takuya
February 09, 2020
Technology
0
420
今更 WebSocket で遊ぶ話 #javado
Java Doでしょう #17:Javaユーザーに伝えたい開発運用&フリーテーマ会!
https://javado.connpass.com/event/164021/
Kihara, Takuya
February 09, 2020
Tweet
Share
More Decks by Kihara, Takuya
See All by Kihara, Takuya
ライブコーディングで知るAmplify Gen 2 #AWSAmplifyJP
tacck
1
99
AWS Amplify Gen 2 GA記念 ~Gen1との違いを確認
tacck
0
200
Amplify Gen2 が GA したよ! #jawsug_sapporo #jawsug
tacck
0
250
Flutter で "Hello World!! #ゆるWeb札幌
tacck
0
130
AWS Lambda で LLRT を動かしてみた #北海道まったりLT大会
tacck
0
130
地方から始める登壇のステップアップ 〜Java Do から JJUG CCC への登壇参加記録 #javado
tacck
0
180
ゆるWebの新型コロナ Before/After とこれからのこと #seb_yearend
tacck
0
41
AWS Amplify と Amazon Bedrock を使ってオレオレ生成AIサイトを作る #ゆるWeb札幌
tacck
0
280
「普通」のエンジニアとしての生存戦略〜または、いかにして技術を楽しむか。 #情報メディア入門
tacck
0
110
Other Decks in Technology
See All in Technology
成果のためのコミュニケーション - 語彙を育てよう -/communication-for-good-outcome-developing-vocabulary
hassaku63
4
150
業務ヒアリングと知識の呪い
tamai_63
0
130
Strict Concurrencyにしたらdeinitでクラッシュする話
0si43
0
120
Semantic Kernel の Agent 機能試してみた!
okazuki
1
100
RAGの性能を評価しよう
kurahara
1
280
「ばん・さく・つき・たー!」にならないためにSHIROBAKOから 学んだこと
ysknsid25
3
460
【shownet.conf_】ShowNet x 宇宙ネットワーク
shownet
PRO
0
310
Oracle Database 23ai 新機能#4 Real Application Clusters
oracle4engineer
PRO
0
110
LeSSはスクラムではない!?LeSSにおけるスクラムマスターの振る舞い方とは / Scrum Master Behavior in LeSS
toma_sm
0
130
テストコードの品質を客観的な数値で担保しよう〜Mutation Testのすすめ〜
ysknsid25
8
1.5k
【shownet.conf_】AI技術とUX監視の応用でShowNetの基盤を支えるモニタリングシステム
shownet
PRO
0
270
【インフラエンジニアbooks】30分でわかる「AWS継続的セキュリティ実践ガイド」
hssh2_bin
4
1.1k
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
19
2.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Building Better People: How to give real-time feedback that sticks.
wjessup
360
19k
Become a Pro
speakerdeck
PRO
24
4.9k
How to Think Like a Performance Engineer
csswizardry
16
1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
In The Pink: A Labor of Love
frogandcode
139
22k
Why Our Code Smells
bkeepers
PRO
334
57k
Thoughts on Productivity
jonyablonski
67
4.2k
Scaling GitHub
holman
458
140k
Six Lessons from altMBA
skipperchong
26
3.4k
Transcript
גࣜձࣾϊʔεσΟςʔϧ ։ൃ%JWJTJPOٕज़ਪਐ(SPVQ UBDDLݪ !UBDDL +BWB%PͰ͠ΐ͏ KBWBEP ࠓߋ8FC4PDLFUͰ ༡Ϳ ݄
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP • ໊લ ݪ / @tacck •
ॴଐ גࣜձࣾϊʔεσΟςʔϧ ։ൃDivision ٕज़ਪਐGroup / Leader • ओ࠵ • ΏΔWebษڧձ@ࡳຈ • εϚʔτεϐʔΧʔͰ༡΅͏ձ@ࡳຈ • ͖ͳϑΟΪϡΞεέʔτͷٕ εϓϨουɾΠʔάϧ ୭ PHP Conference Hokkaido 2019
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP 8FC4PDLFUͱ
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP • Webϒϥβ - WebαʔόؒͰ͑Δɺ ͓खܰͳํ௨৴ͷن֨ɻ • Webϒϥβ؍ͰɺJavaScriptͷ
ΠϕϯτϕʔεͰ࣮Մೳɻ → ΠϕϯττϦΨʔͰDOMߋ৽͕Ͱ͖Δ →→ νϟοτͳͲͷϦΞϧλΠϜΞϓϦ͕࡞Γ͍͢ɻ 8FC4PDLFUͱ
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP • Webαʔό (Node.js) • “post”ϝοηʔδΛड͚औͬͨΒɺ idΛ֬ೝͯ͠ΧϯτΞοϓɻ •
ΧϯτΞοϓޙʹɺ“selections”ϝοηʔδΛ શΫϥΠΞϯτʹ݁Ռૹ৴ɻ ؆୯ͳϦΞϧλΠϜථΞϓϦ
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP socket.on('message', message => { console.log(message) const obj
= JSON.parse(message) const type = obj.message const data = obj.data if (type === 'post') { selections[data.id].count++ } wss.clients.forEach(client => { client.send(JSON.stringify( { message: 'selections', data: selections } )) }) })
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP • Webϒϥβ (Vue.js) • “selections”ϝοηʔδΛड͚औͬͨΒɺ ͱΧϯτΛߋ৽ɻ •
ϘλϯΫϦοΫͰɺ “post”ϝοηʔδૹ৴ɻ ؆୯ͳϦΞϧλΠϜථΞϓϦ
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP mounted() { this.ws = new WebSocket('wss://tacck-ws.herokuapp.com/') const
self = this this.ws.addEventListener('message', message => { const obj = JSON.parse(message.data) const type = obj.message const data = obj.data if (type === 'selections') { self.selections = data } }) }, methods: { send(id) { this.ws.send(JSON.stringify( { message: 'post', data: { id: id } } )) } }
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP ࢼͦ͏ https://github.com/tacck/websocket-sample-client-vuejs https://github.com/tacck/websocket-sample-server-nodejs
!UBDDL +BWB%PͰ͠ΐ͏ KBWBEP FOE