🧊

WebRTC Meetup Tokyo #20 に行ってきたメモ #webrtcjp

WebRTC Meetup Tokyo #20 : ATND

今回の会場は永和システムマネジメントさんの東京支社にあるコワーキングスペースでした。
本社は福井県だそうです。

NodeJSでSTUN(RFC5389)(の一部)を実装した by @leader22

私の発表で、スライドはこちら。

NodeJS(TypeScript)でSTUN(RFC5389)(の一部)を実装した

ぼちぼちやっていきます。

C++からWebRTC(DataChannel)を利用する by @llamerada_jp

C++からWebRTC (DataChannel)を利用する

背景と動機

  • `libvein`という分散アルゴリズムライブラリをつくってる
    • ゆくゆく公開したい
  • 足回りにWebRTCのDataChannelを使ってる
  • Native Codeを使って作ってる
  • 日本語の参考文書がほとんどない

Native APIを使うまで

  • 検討する
    • 参考にできるものがないのでとことん検討する
  • 自分でライブラリを用意
  • それを使ってプログラムを書く
  • コンパイル + 配布がもっとも大変だった
  • みんなでノウハウを貯めていきたい

検討

  • 他に代替手段があるならそっちも検討
  • ドキュメントにあるAPIリストはGitHubのソースのヘッダだったりする
  • そして頻繁に変更が入る
  • くじけない強い心で

コードを書く

  • API変更に耐えうる用、影響範囲を限定しておく
  • 必要な機能だけを
  • マルチスレッド対応が必須
    • `libuv`などに一本化すると吉
  • ブラウザ用には、WASM
  • エラー処理が煩雑になるので、その部分はライブラリの外に

ビルド

  • Development | WebRTC
  • Chromeのリリースにあわせてビルドしたい
    • しかしリリースブランチがアテにならない
  • 最新の安定版がほしい・・・
  • 必要なオブジェクトファイルだけ集める手間がいる
    • サンプルは無視したり
    • BINARY HACKS本は必携

プログラム

  • 最小サンプルは常に手元に
    • 問題の切り分けができる
  • Native APIを使ってコードを書いていく
  • コンパイルもいろいろ注意がいる
    • OpenSSLとBoringSSLは名前が被ってる
    • 3rdPartyのライブラリは注意
    • ライセンスも注意

まとめ

  • まだまだ発展途上だと思う
  • コンパイルなどノウハウが必要
  • 「とりあえず」の状態にするのも大変
    • 容量もデカいのでCIできないとか

WebRTCとNativeとそれから、それから。 by @tnoho

WebRTC と Native とそれから、それから。

はじめに

  • ブラウザ以外でも使えるWebRTC
  • 仕様に準拠できれば、ブラウザとも送受信できる
  • `libwebrtc`はマルチプラットフォーム
    • ネットワークまわりからエンコード・デコードまで全部入り
    • だからこそデファクトスタンダード
  • C++でいろいろ作ってきた、それの紹介

作ってきたものたち

  • WebRTC Client MOMO(旧)
    • 時雨堂のクローズドソース
    • RaspPi Zeroでも動く
    • ハードウェアエンコードできる
  • pyrtcconductor
    • PythonのWrapper
    • フレームはOpenCV互換にしてある
    • Tensorflowとかにもつなげる
    • DataChannelもできる
  • 某社社内向けのもの
    • そのうち
  • WebRTC Client MOMO(新)

Native Clientのカスタム

  • サンプルプログラムがリポジトリに埋まってる
  • 使える機能が多いしマルチプラットフォーム対応、どうカスタムするか
  • `CreatePeerConnectionFactory`を使ってインポートするときに機能を上書きする
  • マルチスレッド問題も、実はProxy内蔵なのでそう設定すればいいだけ

IPv4/IPv6デュアルスタックなリアルタイムP2P通信を行うオンラインゲームにおける、現在の国内/海外ネットワーク環境と、それに対する検証環境の構築手法 by 佐藤 元彦さん from コナミ

IPv4/IPv6デュアルスタックなリアルタイムP2P通信を行うオンラインゲームにおける、現在の国内/海外ネットワーク環境と、それに対する検証環境の構築手法 :: JANOG43

このセッションのおさらいだそうです!

外部配信なしなので、メモもなしです。

クロージング

20回Meetupを開催してみての振り返り。

  • 数字
    • 121セッション
    • 63人が登壇
    • ATNDには895人
    • YouTubeのチャンネル登録は195
    • 総再生回数は6458
  • セッション内容
    • APIやクライアント技術: 21%
    • サーバー技術: 20%
    • 割とバランスよいが、たまにハードな内容に偏るw
  • 登壇者募集中です!

次は4月頃に!