Submit Search
Upload
SkyWay で ビデオチャットサービス を構築してみた!
•
1 like
•
317 views
Tomoe Sawai
Follow
Webナイト宮崎での発表資料です
Read less
Read more
Technology
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
WebIDLを見てみる
WebIDLを見てみる
takenspc
ある工場のRedmine
ある工場のRedmine
Kohei Nakamura
E.G.G.卒業生コメント
E.G.G.卒業生コメント
Daisuke Yamaguchi
[AVTOKYO 2017] What is red team?
[AVTOKYO 2017] What is red team?
Tomohisa Ishikawa, CISSP, CSSLP, CISA, CISM, CFE
MySQL 監査システムを作った話 #mysqlcasual
MySQL 監査システムを作った話 #mysqlcasual
Yahoo!デベロッパーネットワーク
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
Redmineの開発状況のこれまでと現在
Redmineの開発状況のこれまでと現在
Go Maeda
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
Kosuke Ito
Recommended
WebIDLを見てみる
WebIDLを見てみる
takenspc
ある工場のRedmine
ある工場のRedmine
Kohei Nakamura
E.G.G.卒業生コメント
E.G.G.卒業生コメント
Daisuke Yamaguchi
[AVTOKYO 2017] What is red team?
[AVTOKYO 2017] What is red team?
Tomohisa Ishikawa, CISSP, CSSLP, CISA, CISM, CFE
MySQL 監査システムを作った話 #mysqlcasual
MySQL 監査システムを作った話 #mysqlcasual
Yahoo!デベロッパーネットワーク
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
Redmineの開発状況のこれまでと現在
Redmineの開発状況のこれまでと現在
Go Maeda
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
Kosuke Ito
Case Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by Default
Mohammed ALDOUB
なぜ私はソニックガーデンのプログラマに転身できたのか?
なぜ私はソニックガーデンのプログラマに転身できたのか?
Junichi Ito
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
オラクルエンジニア通信
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
Ryosuke Otsuya
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
Ownership System in Rust
Ownership System in Rust
Chih-Hsuan Kuo
20170525 jsug バッチは地味だが役に立つ
20170525 jsug バッチは地味だが役に立つ
Yuichi Hasegawa
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
Yusuke Naka
Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)
Hiroshi Sakate
Collecting metrics with Graphite and StatsD
Collecting metrics with Graphite and StatsD
itnig
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
Example of exiting legacy system
Example of exiting legacy system
TakamchiTanaka
デザインパターン
デザインパターン
gaaupp
Classic Vulnerabilities (MUCplusplus2022).pdf
Classic Vulnerabilities (MUCplusplus2022).pdf
Patricia Aas
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
onozaty
Spring Data JPAによるデータアクセス徹底入門 #jsug
Spring Data JPAによるデータアクセス徹底入門 #jsug
Masatoshi Tada
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
Tatsuo Kudo
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
ビズリーチの機械学習基盤
ビズリーチの機械学習基盤
Naoto Migita
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
ToruKubota4
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
More Related Content
What's hot
Case Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by Default
Mohammed ALDOUB
なぜ私はソニックガーデンのプログラマに転身できたのか?
なぜ私はソニックガーデンのプログラマに転身できたのか?
Junichi Ito
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
オラクルエンジニア通信
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
Ryosuke Otsuya
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
Ownership System in Rust
Ownership System in Rust
Chih-Hsuan Kuo
20170525 jsug バッチは地味だが役に立つ
20170525 jsug バッチは地味だが役に立つ
Yuichi Hasegawa
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
Yusuke Naka
Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)
Hiroshi Sakate
Collecting metrics with Graphite and StatsD
Collecting metrics with Graphite and StatsD
itnig
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
Example of exiting legacy system
Example of exiting legacy system
TakamchiTanaka
デザインパターン
デザインパターン
gaaupp
Classic Vulnerabilities (MUCplusplus2022).pdf
Classic Vulnerabilities (MUCplusplus2022).pdf
Patricia Aas
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
onozaty
Spring Data JPAによるデータアクセス徹底入門 #jsug
Spring Data JPAによるデータアクセス徹底入門 #jsug
Masatoshi Tada
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
Tatsuo Kudo
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
ビズリーチの機械学習基盤
ビズリーチの機械学習基盤
Naoto Migita
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
What's hot
(20)
Case Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by Default
なぜ私はソニックガーデンのプログラマに転身できたのか?
なぜ私はソニックガーデンのプログラマに転身できたのか?
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Ownership System in Rust
Ownership System in Rust
20170525 jsug バッチは地味だが役に立つ
20170525 jsug バッチは地味だが役に立つ
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)
Collecting metrics with Graphite and StatsD
Collecting metrics with Graphite and StatsD
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
Example of exiting legacy system
Example of exiting legacy system
デザインパターン
デザインパターン
Classic Vulnerabilities (MUCplusplus2022).pdf
Classic Vulnerabilities (MUCplusplus2022).pdf
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
Spring Data JPAによるデータアクセス徹底入門 #jsug
Spring Data JPAによるデータアクセス徹底入門 #jsug
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
ビズリーチの機械学習基盤
ビズリーチの機械学習基盤
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
Similar to SkyWay で ビデオチャットサービス を構築してみた!
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
ToruKubota4
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
Twilioと山下と学び
Twilioと山下と学び
Mitsuhiro Yamashita
Kubernetesのない世界 すべてがサーバーレスになる
Kubernetesのない世界 すべてがサーバーレスになる
真吾 吉田
クラウドネイティブが行なういまどきWebサービス開発
クラウドネイティブが行なういまどきWebサービス開発
Yuuji Arakaki
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発
Ryosuke Izumi
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
Nobuyuki Matsui
Sb tech night#1_document_otsuki_202104
Sb tech night#1_document_otsuki_202104
YusukeOtsuki
SkyWay Vision & Mission
SkyWay Vision & Mission
Yoshiki Mizushima
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
史識 川原
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
Takahiro Okumura
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
zaru sakuraba
現場開発者視点で答えるWindows Azure
現場開発者視点で答えるWindows Azure
Keiichi Hashimoto
受託の会社が自社サービスをやる中で取り組んだ開発・運用の工夫
受託の会社が自社サービスをやる中で取り組んだ開発・運用の工夫
Yusuke Tamukai
Another works_リードエンジニア向け採用資料.pdf
Another works_リードエンジニア向け採用資料.pdf
ssuseree1665
Deploy TypeScript with CodePipeline in Fargate
Deploy TypeScript with CodePipeline in Fargate
bitbank, Inc. Tokyo, Japan
20180228 jazug
20180228 jazug
Six Apart
【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術
Yoshinori Fujiwara
17-D-1 Azure開発の極意 ~2011年版~
17-D-1 Azure開発の極意 ~2011年版~
Sunao Tomita
Similar to SkyWay で ビデオチャットサービス を構築してみた!
(20)
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Twilioと山下と学び
Twilioと山下と学び
Kubernetesのない世界 すべてがサーバーレスになる
Kubernetesのない世界 すべてがサーバーレスになる
クラウドネイティブが行なういまどきWebサービス開発
クラウドネイティブが行なういまどきWebサービス開発
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
Sb tech night#1_document_otsuki_202104
Sb tech night#1_document_otsuki_202104
SkyWay Vision & Mission
SkyWay Vision & Mission
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
現場開発者視点で答えるWindows Azure
現場開発者視点で答えるWindows Azure
受託の会社が自社サービスをやる中で取り組んだ開発・運用の工夫
受託の会社が自社サービスをやる中で取り組んだ開発・運用の工夫
Another works_リードエンジニア向け採用資料.pdf
Another works_リードエンジニア向け採用資料.pdf
Deploy TypeScript with CodePipeline in Fargate
Deploy TypeScript with CodePipeline in Fargate
20180228 jazug
20180228 jazug
【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術
17-D-1 Azure開発の極意 ~2011年版~
17-D-1 Azure開発の極意 ~2011年版~
More from Tomoe Sawai
エンタープライズ SaaS の初期成長戦略
エンタープライズ SaaS の初期成長戦略
Tomoe Sawai
ユースケース駆動開発のワークショップやってみた!
ユースケース駆動開発のワークショップやってみた!
Tomoe Sawai
Flexbox しか勝たん
Flexbox しか勝たん
Tomoe Sawai
フルリモートチームで スクラム開発 やってみた!
フルリモートチームで スクラム開発 やってみた!
Tomoe Sawai
TypeScriptで辛麺を注文する(ライブコーディング)
TypeScriptで辛麺を注文する(ライブコーディング)
Tomoe Sawai
初めての公開Gem作り
初めての公開Gem作り
Tomoe Sawai
地方フリーランスとして ゆるいチームで生き抜いてる話
地方フリーランスとして ゆるいチームで生き抜いてる話
Tomoe Sawai
田舎暮らし流エンジニアスキルアップ術
田舎暮らし流エンジニアスキルアップ術
Tomoe Sawai
在宅フリーランスで 失敗した話3選
在宅フリーランスで 失敗した話3選
Tomoe Sawai
Stripe Connect with Subscriptions で サブスクプラットフォーマー になろう
Stripe Connect with Subscriptions で サブスクプラットフォーマー になろう
Tomoe Sawai
Solidus + Stripe で爆速!?ECサイト構築
Solidus + Stripe で爆速!?ECサイト構築
Tomoe Sawai
宮崎移住して山の中でリモートワークしてみた(2019/6/26)
宮崎移住して山の中でリモートワークしてみた(2019/6/26)
Tomoe Sawai
宮崎の山の中でリモートワークしてみた
宮崎の山の中でリモートワークしてみた
Tomoe Sawai
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Tomoe Sawai
センスゼロエンジニアが ノンデザイナーズ・デザインブック を読んでどこまでできるか試す
センスゼロエンジニアが ノンデザイナーズ・デザインブック を読んでどこまでできるか試す
Tomoe Sawai
5分で伝えるAWS
5分で伝えるAWS
Tomoe Sawai
プラットフォームビジネスを手軽に始める!Stripe Connectを使ってみた
プラットフォームビジネスを手軽に始める!Stripe Connectを使ってみた
Tomoe Sawai
More from Tomoe Sawai
(17)
エンタープライズ SaaS の初期成長戦略
エンタープライズ SaaS の初期成長戦略
ユースケース駆動開発のワークショップやってみた!
ユースケース駆動開発のワークショップやってみた!
Flexbox しか勝たん
Flexbox しか勝たん
フルリモートチームで スクラム開発 やってみた!
フルリモートチームで スクラム開発 やってみた!
TypeScriptで辛麺を注文する(ライブコーディング)
TypeScriptで辛麺を注文する(ライブコーディング)
初めての公開Gem作り
初めての公開Gem作り
地方フリーランスとして ゆるいチームで生き抜いてる話
地方フリーランスとして ゆるいチームで生き抜いてる話
田舎暮らし流エンジニアスキルアップ術
田舎暮らし流エンジニアスキルアップ術
在宅フリーランスで 失敗した話3選
在宅フリーランスで 失敗した話3選
Stripe Connect with Subscriptions で サブスクプラットフォーマー になろう
Stripe Connect with Subscriptions で サブスクプラットフォーマー になろう
Solidus + Stripe で爆速!?ECサイト構築
Solidus + Stripe で爆速!?ECサイト構築
宮崎移住して山の中でリモートワークしてみた(2019/6/26)
宮崎移住して山の中でリモートワークしてみた(2019/6/26)
宮崎の山の中でリモートワークしてみた
宮崎の山の中でリモートワークしてみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
センスゼロエンジニアが ノンデザイナーズ・デザインブック を読んでどこまでできるか試す
センスゼロエンジニアが ノンデザイナーズ・デザインブック を読んでどこまでできるか試す
5分で伝えるAWS
5分で伝えるAWS
プラットフォームビジネスを手軽に始める!Stripe Connectを使ってみた
プラットフォームビジネスを手軽に始める!Stripe Connectを使ってみた
SkyWay で ビデオチャットサービス を構築してみた!
1.
SkyWay で ビデオチャットサービス を構築してみた! 澤井 友恵 @tomoeine
2.
今日話すこと ● ビデオチャットサービス構築の背景 ● WebRTC
とは? ● SkyWay とは? ● SkyWay でビデオチャットサービスを構築 ● デモはなし(宣言)
3.
自己紹介 フリーランスWebエンジニア 澤井友恵 @tomoeine ● 宮崎の山の中でリモートワーク ● 東京生まれ・宮崎移住 ●
SIer → Web系に転身した人 ● Laravel, Vue.js, Ruby on Rails, AWS 等 ● 2018年6月〜 フルリモートでフリーランス
4.
ビデオチャットサービス 構築の背景
5.
ビデオチャットサービス構築の背景 ● 4月の緊急事態宣言を受けて リモートワークが広がった ● これまで、一部の業務では対面が前提になって いたが、リモートで代替する手段を提供したい (というプロダクトオーナーからの要望)
6.
● 自社サービスのデータを画面共有するなど、 よりシームレスで使いやすいUXを提供したい ● 企業向けのサービスのため、 会社PCにZoomアプリのインストールができない 可能性がある どうしてZoomじゃダメなの?
7.
WebRTCとは
8.
WebRTC の仕組み P2P(Peer to
Peer) で映像や音声を交換する仕組み P2Pの確立 ICEサーバー
9.
ICEサーバーとは? 略 よくわかってない・・・😇
10.
SkyWay とは?
11.
SkyWay の特長 ・無料で始められる ・専用の JS
SDK やネイティブアプリのSDKを提供 ・ICEサーバーをSaaSで提供 WebRTC SDK + API プラットフォーム ・日本語のサポート・ドキュメントが充実!
12.
SkyWayを使うと・・・ P2P(Peer to Peer)
で映像や音声を交換する仕組み P2Pの確立 ICEサーバー SkyWay
13.
ビデオチャットの実装方法比較 独立サービス系:Zoom、Whereby など フルスクラッチ系:ICE サーバーも含めた、WebRTC
の自前実装 クラウドサービス系:SkyWay(後述)、OpenTok など
14.
実装の留意点(WebRTCの仕様上) ● スマートフォンのブラウザでは使えない (ネイティブアプリ向けのSDKが別途提供されている) ● IE非対応 ●
画面共有機能は、Safari非対応
15.
SkyWay でビデオチャット サービスを構築
16.
JavaScript 処理の大まかな流れ(簡略化しています) SkyWay ①peer を作る
②peer を作る ① peer ID をユーザー 情報に紐付け ③ Aさんのpeer IDを 問い合わせる ④ Aさんのpeer IDに call する ⑤ Bさんからの call を 受信したら、応答する 自前サービスのバックエンド Peer 接続❤ Aさん Bさん
17.
アカウント&アプリケーション登録 https://webrtc.ecl.ntt.com/
18.
アカウント&アプリケーション登録
19.
キーを控えておく
20.
HTMLの準備 ←自分の映像 ←相手の映像
21.
自分のカメラ映像の取得・再生 ↓WebRTCで重要なやつ
22.
JS SDK を読み込んで
peer を作る
23.
JS SDK を読み込んで
peer を作る
24.
発信する(Bさん)
25.
着信に応答する(Aさん)
26.
実際にできたもの
27.
まとめと感想
28.
まとめ・感想 ● チュートリアル動かすだけなら半日でできた ● リリースまでも2週間ぐらいでできた ●
とはいえ、JSのコードは結構たくさん書いた (SkyWayというより、WebRTCの仕様的に仕方ないと思っている) ● 自分でコード書いてビデオチャット機能作れる のは結構楽しかった
29.
ご清聴ありがとうございました! 澤井 友恵 @tomoeine SkyWay で ビデオチャットサービス を構築してみた!
Download now