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
WebTransport mini handson
Search
D.F.Mac. @TripArts Music
June 27, 2024
Technology
0
44
WebTransport mini handson
2024.06.28 に某所で実施予定の「WebTransport ミニミニハンズオン」の資料です。
D.F.Mac. @TripArts Music
June 27, 2024
Tweet
Share
More Decks by D.F.Mac. @TripArts Music
See All by D.F.Mac. @TripArts Music
超途中!ノーコードツールでゲームを作り始めてみた。
tadfmac
0
17
ちーん2024
tadfmac
0
560
Other Decks in Technology
See All in Technology
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
160
「Linux」という言葉が指すもの
sat
PRO
4
130
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
890
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
テストを軸にした生き残り術
kworkdev
PRO
0
200
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
研究開発と製品開発、両利きのロボティクス
youtalk
1
520
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
410
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
9
72k
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
12
4.8k
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Facilitating Awesome Meetings
lara
55
6.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Speed Design
sergeychernyshev
32
1.1k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Docker and Python
trallard
45
3.6k
Automating Front-end Workflow
addyosmani
1370
200k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Transcript
WebTransport ϛχϛχϋϯζΦϯ ͩ͜·ɹͻͰΏ͖ Teams!"#ˠ IUUQTHJTUHJUIVCDPNUBEGNBDFEFEDCFEB ࣄલ४උ
ࣗݾհ ͩ͜·ɹͻͰΏ͖ 8FCΤϯδχΞϓϩτλΠϐϯά͖ !UBEGNBD IUUQTHJUIVCDPNUBEGNBD
ΞδΣϯμ 8FC5SBOTQPSUͱ ϛχϛχϋϯζΦϯ ʢϩʔΧϧ1$Ͱ8FC5SBOTQPSUαʔόʔΛཱͯͯϒϥβ͔Β৮ͬͯΈΔʣ
8FC5SBOTQPSUͱ ৽͍͠Ϩϕϧτϥϯεϙʔτ"1*ɻʢͳΜͰ͜Μͳࡶͳઆ໌ͳͷ͔ ޙड़ʣ Լهͭͷ"1*Λఏڙɻ 4USFBN"1* ˠॱংอূɺύέϩε࣌ͷ࠶ૹ੍ޚ͋Γɻ৴པੑ͕ߴ͍ɻ EBUBHSBN"1* ˠॱংอূͳ͠ɺύέϩε࣌ͷ࠶ૹ੍ޚͳ͠ɻ৴པੑ͕͍ɻ IUUQTXXXXPSH53XFCUSBOTQPSU ༷·ͩ8%ɻ࠷৽൛ͷΞοϓσʔτ
8FC5SBOTQPSUͱ
͑Δڥ 4BGBSJͪɻ 8FC5SBOTQPSUͱ ͨͩ͠ɺ͜Εɺ Ҿ༻ݩɿIUUQTDBOJVTFDPN TFBSDIXFCUSBOTQPSU ͭ·Γɺʮ4FSWFS$MJFOUؒͷʯʮ)551ϕʔεͷʯ༷ͷɻ
4FSWFS$MJFOUؒͷ)551ϕʔεͷ8FC5SBOTQPSUʁ ͜Ε 8FC5SBOTQPSUͱ Ҿ༻ݩɿIUUQTEBUBUSBDLFSJFUGPSHEPDIUNMESBGUJFUGXFCUSBOTIUUQ
8FC5SBOTQPSUPWFS)551ͱ 8FC5SBOTQPSUͱ )551ϕʔεͷαʔόʔΫϥΠΞϯτؒͰͷํτϥϯεϙʔτ"1* )551ʢ26*$ʣϕʔεͳͷͰɺ6%1Ͱ&&҉߸ԽͰ௨৴͢Δɻ Լهͭͷ"1*Λఏڙɻ 4USFBN"1* ˠॱংอূɺύέϩε࣌ͷ࠶ૹ੍ޚ͋Γɻ৴པੑ͕ߴ͍ɻ EBUBHSBN"1* ˠॱংอূͳ͠ɺύέϩε࣌ͷ࠶ૹ੍ޚͳ͠ɻ৴པੑ͕͍ɻ
8FCݕࡧͯ͠ݟ͔ͭΔ8FC5SBOTQPSUͷઆ໌ɺ͍͍ͩͨ͜Εɻ ͱͱͷ8FC5SBOTQPSUͷϞνϕͷ༷͜ΕͳͷͰɺਖ਼ղͱ͍͑ਖ਼ղɻ
Ͳ͏ͳͬͪΌͬͨͷ 8FC5SBOTQPSUͱ Ҿ༻ݩɿIUUQTXXXXPSHTUBOEBSETIJTUPSZXFCUSBOTQPSU 8FC5SBOTQPSUPWFS)551Ճ 8FC5SBOTQPSUPWFS)551Ͱ࢝·Δ
͜͏ͳͬͨɻʢͷ༷ͰมΘΒͣʣ 8FC5SBOTQPSUͱ Ҿ༻ݩɿIUUQTXXXXPSH53XFCUSBOTQPSUJOUSPEVDUJPO ˠ)551ϕʔεʢ5$1ϕʔεʣͰ8FC5SBOTQPSUϓϩτίϧ͕͑ΔΑ͏ʹɺ ɹ8FC5SBOTQPSUPWFS)551ͷ༷͕Ճ͞Εͨɻ Ҿ༻ݩɿIUUQTEBUBUSBDLFSJFUGPSHEPDIUNMESBGUJFUGXFCUSBOTIUUQ
ͳΜͰ5$1ϕʔε͕Ճ͞Εͨͷ 8FC5SBOTQPSUͱ ˠ6%126*$͑ͳ͍γʔϯଟ͍͔Βɻ ྫɿ ɹɾ6%1ϙʔτۭ͍ͯͳ͍ ɹɾ1SPYZαʔόʔ͘Μ͕अຐ͢Δ ϦΞϧλΠϜੑೳ
ˠવԼ͕Δͱ༧ɻʢ࣮͕ແ͍ͷͰɺͲͷ͘Β͍Լ͕Δ͔Θ͔ΒΜ͚Ͳʣ PWFS)551ʹμϯάϨʔυͯ͠خ͍͠Ϣʔεέʔε ˠ8FC4PDLFUͷΘΓʹϕετΤϑΥʔτͰੑೳ্͛ͯ8FC5SBOTQPSUΛ͍͍ͨ ɹˠૣ͞ΑΓܨ͍͛ͨɺͱ͍͏ํ ɹɹˠͰɺ8FC4PDLFUͷ··Ͱ͍͍ͷͰʁͱ͍͏ٙɻ PWFS)551ʹμϯάϨʔυ͞ΕͯࠔΓͦ͏ͳϢʔεέʔε ˠEBUBHSBN͍͍͔ͨΒ8FC5SBOTQPSUΛ͏Α͏ͳγʔϯɻ ɹྫ͑ɺ.FEJBPWFS2VJDͷϕʔεͱͯ͠8FC5SBOTQPSUͬͯΔͱ͔ͷ࣌ɺ ɹεϧʔϓοτͰͳ͍Μ͡Όͳ͍͔ʁͱࢥ͏ɻ
Ͱɺશʹ༨ஊɻ 8FC5SBOTQPSUͱ Ҿ༻ݩɿIUUQTXDHJUIVCJPQQXFCUSBOTQPSU 117FSTJPO
8FC5SBOTQPSUͱ ·ͱΊɻ 8FC5SBOTQPSUͱ 8$8% ˠ·༷ͩࡦఆத͕ͩɺ৽͍͠Ϩϕϧτϥϯεϙʔτ"1*ɻΒ͍͠ɻ ˠ݄ݱࡏී௨ʹར༻Ͱ͖Δͷ8FC5SBOTQPSUPWFS)551ͷΈɻ ɹ!GBJMTDPNQPSOFOUXFCUSBOTQPSU͕PWFS)551༻ͷQPMZ fi MM
TFSWFS࣮Λެ։͍ͯ͠Δɻ͍͢͝ɻ 6%1 5$1 )551 )551 8FC5SBOTQPSU PWFS)551 8FC5SBOTQPSU PWFS)551 8FC5SBOTQPSU GPS11 4BGBSJҎ֎ͷϒϥβରԠ ·ͩͲͷϒϥβະରԠ ·ͩͲͷϒϥβະରԠ 5-4 26*$ 5-4
8FC5SBOTQPSUͱ ·ͱΊɻ 8FC5SBOTQPSUͱ ࡶ͗ͯ͢ɺϚαΧϦͱΜͰ͖ͦ͏͚ͩͲɺ͍͍ͩͨ͜Μͳײͩ͡ͱࢥ͏ɻ )551GFUDI 9)3 8FC4PDLFU 8FC35$ 8FC5SBOTQPSU
PWFS)551 ৴པੑ ˓ ˓ ºNFEJBTUSFBN ˚ʙ˓EBUBDI ˚4USFBN º%BUBHSBN ϦΞϧλΠϜੑೳ º º ˓ ˚4USFBN ˓%BUBHSBN ηΩϡϦςΟ ˓44-ͷ߹ ºඇ44-ͷ߹ ˓44-ͷ߹ ºඇ44-ͷ߹ ˓ ˓ ࠓ͑Δ͔ʁ ˓ ˓ ˓ º4BGBSJͪ ௨৴ํ $ˠ4ͷΈ $⁶4ํ جຊతʹ$ˠ$ ͷٕज़ $⁶4ํ ͍ॴ σʔλ"1*ɺ ίϯςϯπऔಘ νϟοτ ํ"1* αʔόʔΠϕϯτ ϝσΟΞ௨৴ 11ڞ༗ ήʔϜ ϦΞϧλΠϜಉظ .P2
WebTransport ϛχϛχϋϯζΦϯ ͩ͜·ɹͻͰΏ͖ Teams!"#ˠ IUUQTHJTUHJUIVCDPNUBEGNBDFEFEDCFEB ࣄલ४උ
Δ͜ͱ֓ཁ 8FC5SBOTQPSUϨϕϧͳ"1*ઃܭͳͷͰɺΞϓϦέʔγϣϯ͔Βѻ͏ͷগʑࠎ͕ંΕ·͢ɻ ɾී௨ʹίʔσΟϯά͕ΊΜͲ͍͘͞ʢԼهࢀরʣ ɾূ໌ॻ͕͍Ζ͍ΖΊΜͲ͍͘͞ʢ)551ͷੑʣ ɾͦͦOPEFKT·ͩ)551ʹରԠͯ͠ͳ͍͔Β͍Ζ͍Ζ͕ඞཁ͚ͩͲɺԿΛ͢Ε͍͍͔ʁ ɹௐΔ͚ͩͰେมʢݹ͍ใʹΘ͞ΕΔʣ ͜ΕΛղܾ͢ΔͨΊʹɺ4FSWFS$MJFOUͷςετڥΛ؆୯ʹ্ཱͪ͛ΒΕΔϥούʔϥΠϒϥϦΛ
ͬͨαϯϓϧΛͭ͘Γ·ͨ͠ɻ ͷͰɺ͜ΕΛͬͯരXFCUSBOTQPSUڥͷߏஙΛࢼ͢ɻͱ͍͏ϋϯζΦϯͰ͢ɻ 8FC4PDLFUड৴ॲཧͷྫ const ws = new WebSocket(url); ws.onmessage = (e)=>{ // onmessageॲཧ; } 8FC5SBOTQPSUड৴ॲཧͷྫʢTUSFBNʣ const wt = new WebTransport(url); const st = wt.incomingUnidirectionalStreams; const reader = st.getReader(); while (true) { const { done, value } = await reader.read(); if (done) { break; } await readData(value); } async function readData(receiveStream) { const reader = receiveStream.getReader(); while (true) { const { done, value } = await reader.read(); if (done) { break; } // ड৴ॲཧ } }
Լه63-ΞΫηεʂ Teams!"#ˠ IUUQTHJUIVCDPNUBEGNBDQPXUFYBNQMF μϯϩʔυऴΘͬͨΒɺຊޠϖʔδʂ ࠷ॳʹ[JQΛμϯϩʔυ͍ͯͩ͘͠͞ɻ[JQղౚޙɺϑΥϧμ໊ΛʮQPXUFYBNQMFʯʹมߋ
NLDFSUΠϯετʔϧ NBDʮλʔϛφϧʯىಈ brew install mkcert XJOཧऀϞʔυͰQPXFSTIFMMىಈ choco install mkcert cd
powt-example1/cert mkcert --install mkcert localhost MPDBMIPTUূ໌ॻΠϯετʔϧ cd .. npm i node ./app.mjs OQNJ ΞϓϦىಈ chrome://flags#webtransport-developer-mode ϒϥβ fl BHมߋ DISPNFΛىಈ͠ɺΞυϨεόʔʹԼهೖྗ <FOBCMFE>ʹมߋ͠ϒϥβ࠶ىಈ ΫϥΠΞϯτΞΫηε https://localhost:4445 DISPNFΛىಈ͠ɺΞυϨεόʔʹԼهೖྗ
Thanks! Teams!"#ˠ