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
オンライン英会話とSkyWay
Search
taminif
January 15, 2018
Programming
550
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オンライン英会話とSkyWay
SkyWay UG Kansai #1
https://skyway.connpass.com/event/74875/
taminif
January 15, 2018
More Decks by taminif
See All by taminif
React Native New Architecture 移行実践報告
taminif
1
250
「とりあえずAI」が招く悲劇〜私がAIで生産性を下げるまでの話〜 / The tragedy caused by "AI for now" - The story of how I used AI to reduce my productivity
taminif
1
320
PuppeteerとPlaywrightの15日間の演劇 / relation of Puppeteer and Playwright
taminif
3
2.3k
Redashの開発はじめました / How to get started Redash development
taminif
0
810
私の生活を変えたHeadless Chrome / Headless Chrome who changed my life
taminif
3
540
WebSocketをiOSに持ち込んで辛い思いをした経験がありますか!? / have you painful experience in web socket?
taminif
3
6.2k
LINEで馬券を購入する / Purchase a betting ticket at LINE
taminif
1
1.7k
SkyWayで一年間運用してきたけどWebRTCってつらいんじゃないの
taminif
2
1k
オンライン英会話アプリとSkyWay
taminif
0
500
Other Decks in Programming
See All in Programming
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
110
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
840
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
220
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
Performance Engineering for Everyone
elenatanasoiu
0
270
Claude Team Plan導入・ガイド
tk3fftk
0
180
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
200
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
150
初めてのKubernetes 本番運用でハマった話
oku053
0
120
AIエージェントで 変わるAndroid開発環境
takahirom
2
550
OSINT for SRE: 学術論文とポストモーテムから探る システム障害の共通パターン / SRE NEXT 2026
tomoyk
1
3.5k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Product Roadmaps are Hard
iamctodd
55
12k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Making Projects Easy
brettharned
120
6.7k
Context Engineering - Making Every Token Count
addyosmani
9
1k
Transcript
ΦϯϥΠϯӳձͱ SkyWay SkyWay UG Kansai #1 2018/01/12 େౡ ޫو@sbntaminif
ࣗݾհ • ΣϒϦΦגࣜձࣾWEBΤϯδχΞ + ϓϩμΫτ Ϛωʔδϟʔ • খ͍͞Ͱ͕͢ຊεϙϯαʔ͍͍͓ͤͯͨͩͯ͞Γ ·͢ʂ •
ීஈژͰಇ͍͍ͯ·͢
http://ejje.weblio.jp/content/ios
ΦϯϥΠϯࣙॻΛఏڙ͢Δ WebαʔϏε
ࣙॻҎ֎ʹ ӳձαʔϏεΛ͍ͬͯ ·͢
None
Skypeӳձͱݴ͑ ฉ͍ͨ͜ͱ͋Δํ ଟ͍ͷͰͳ͍Ͱ͠ΐ͏͔
20173݄1ΑΓɺWebRTCΛ ༻ͨ͠Ϩοεϯʹ Ҡߦ͠·ͨ͠ɻ
WebRTCͱʢςϯϓϨʣ • W3C͕ఏএ͢ΔP2PϦΞϧλΠϜίϛϡχέʔ γϣϯΛ࣮ݱ͢Δٕज़ • ϓϥάΠϯͳ͠ͰϒϥβؒͷΓͱΓ͕Մೳ • ຊதͷਓ͕͍Βͬ͠ΌΔͷͰ આ໌͓ͤ͠Α͏ͱࢥ͍·͢ɻ
SkyWay: WebRTCΛ؆୯ʹ ࣮ݱ͢ΔαʔϏε https://webrtc.ecl.ntt.com
ͯ͞ɾɾɾ
ࠓԿͷΛ͢Δ͔
ԿͷΛ͠Α͏ • ٕज़ͷʁ • ฐࣾΤϯδχΞἧ͍ • ͭΒΈͷʁ • தͷਓͷલʹ ωΨςΟϒΩϟϯϖʔϯͰ͖·ͤΜʂʂ
ԿͷΛ͠Α͏ • ٕज़ͷʁ • ฐࣾΤϯδχΞἧ͍ • ͭΒΈͷʁ • தͷਓͷલʹ ωΨςΟϒΩϟϯϖʔϯͰ͖·ͤΜʂʂ
-> ܦҢͷͲ͏ͩΖ͏͔ʁ
SkyWayΛಋೖͨ͠ܦҢͷΛ ͢Εɺ࠙ձͰ͘͢͠ ͳΔͷͰͳ͍ͩΖ͏͔ʂ
Weblioӳձ ͍ͭɺͲ͜ͰɺͩΕ͕ɺ SkyWayΛɺͳͥಋೖͨ͠ͷ͔
Weblioӳձͷ 5W1H
ᶃWHEN ͍ͭ
ϦϦʔε20173݄Ͱ͕͢ ͜͜Ͱ͏গ͠ৄ͘͠
WHEN • 201612݄ʹWebRTCҠߦΛܾఆ • ։ൃظؒ4ϲ݄ • ։ൃϝϯόʔ5ਓ • ΞϓϦಉ࣌ฒߦ
ᶄWHERE Ͳ͜
͜ͷ෦
ॳ͜͜8FC35$Ͱ ࣮͢ΔͭΓͰ͕ͨ͠ ϩάΛͨ͢Ίஅ೦
ᶅWHO ͩΕ
্͕ಋೖΛܾఆ͠·ͨ͠ ແྉͩͬͨͷͰোน͕ ͔ͬͨͷྑ͔ͬͨ
ᶆWHAT ͳʹ
SkyWay https://webrtc.ecl.ntt.com
͔ͤͬ͘ͳͷͰ ଞͷαʔϏε બ͠ͳ͔͔ͬͨ
WHAT • 201612݄Ͱ֎෦αʔϏεΛ͏߹ͷબࢶೋͭ • SkyWay • ָఱʢαʔϏε໊Εͯ͠·͍·ͨ͠ɻɻʣ • ແྉͰ͑ΔͷSkyWayͷΈͩͬͨ •
ࣗࣾͰαʔόʔͨͯΔͷίετͷ໘Ͱͳͩͬͨ͠
ᶇWHY ͳͥ
ͦͦͳͥ WebRTCʹҠߦ͔ͨ͠
SkypeͰͬͯͨࠒ
WHY • SkypeͰຊʹϨοεϯ͍ͯ͠Δͷ͔ • τϥϒϧൃੜ࣌ʹԿ͕ى͖͍ͯΔͷ͔ • 1ਓ1ΞΧϯτ͔͠࡞Εͳ͔ͬͨ • ֶߍʹఏڙ͢Δ্ͰϚΠφε
ݶք͕དྷ͍ͯͨ
ࠓͰSkypeͷͱ͜Ζ͕΄ͱ ΜͲͰ͕͢ɺۀքશମͰҠߦ ͷಈ͖͕͋Γ·͢ʂ
ᶈHOW ͲͷΑ͏ʹ
ϏσΦνϟοτ෦ peer2 .on("open", (p2id) => { peer2id = p2id; //
ૹΓଆ peer1 = new Peer(config); peer1 .on("open", (p1id) => { makeNewCall(); }); }); ͜ͷ1FFS TLZXBZKTΛ JNQPSUͨ͠ͷ ࣍ϖʔδ
ϏσΦνϟοτ෦ function makeNewCall() { const constraints = getConstraints(); getUserMedia(constraints) .then((myStream)
=> { console.log("created"); // طଘΦϒδΣΫτΛഁغ if (call !== null) { call.close(); call = null; } if (streamUrl !== null) { URL.revokeObjectURL(streamUrl); streamUrl = null; } console.log("sending stream..."); call = peer1.call(peer2id, myStream, { audioBandwidth: AUDIO_BANDWIDTH, // max audio bandwidth (kbps) videoBandwidth: Number($("#videoBandwidth").val()), // max video bandwidth (kbps) }); }) .catch(errorHandler); } 4USFBNΛऔಘ͠ 1SPNJTFΛฦ͢ औಘͨ͠4USFBNΛDBMM͠ ૬खʹૹ৴
ιʔείʔυGithubΛࢀߟ ʹ͍ͯͩ͘͠͞ʂ https://github.com/weblio/webrtc-kun
͋ͱ࠙ձͰ ͳΜͰฉ͍͍ͯͩ͘͞ʂ
We are Hiring!
͋Γ͕ͱ͏͍͟͝·ͨ͠