Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Clubhouseのような仕組みを 使ったオンライン展覧会を 作ってみましたが何か質問ある?👋

Clubhouseのような仕組みを 使ったオンライン展覧会を 作ってみましたが何か質問ある?👋

2021/07/17に開催された「夏のJavascript祭り Online」において、Clubhouseのような仕組みを使ったオンライン展覧会作った時の技術的な話あれこれと詰まりポイントなどを話しました。

https://javascript-fes.doorkeeper.jp/events/123412

Akihiro Kato

July 17, 2021
Tweet

More Decks by Akihiro Kato

Other Decks in Programming

Transcript

  1. # jsfes croe_c https://akihirokato.com https://startbahn.jp/ croe https://drawcircle.jp/ 加藤 明洋 スタートバーン株式会社/drawcircle合同会社 1992年、愛知生まれ。大学卒業後ウェブ制作会社を経て、情報科学芸術大学院大

    学(IAMAS)に進学、メディア表現専攻修了。ブロックチェーンが新しい社会 を作る一つの可能性を持っていると考え、それを伝えるための表現としてボード ゲーム「TRUSTLESS LIFE」を制作。CREATIVE HACK AWARD 2018 SONY 特別賞を始め各方面からの評価を得る。スタートバーン株式会社でエンジ ニアとして従事する傍、個人・周辺パートナーと連携し複数のプロジェクトを進 めていくために、2019年drawCircle合同会社を設立。現在に至る。
  2. Server Webapp Code hosting Build & Hosting VoiceChat Firebase function

    Firebase firestore Spread sheet App script Contents # jsfes
  3. # jsfes スプレッド シート App Script Firebase イベント 全体設定 情報追加・変更 開始・終了

    イベント 展示 展示 情報追加・変更 情報追加・変更 情報追加・変更 ユーザー削除 展示 ユーザー グループ/個人 通知 通知 送信 全体通知 サイト設定 BAN 設定 メッセージ ルーム BAN UID ルーム開設 ルーム Webapp exhibit or Particip ant リアルタイム同期 Admin タイムテーブル Exhibitorが開く ボイスルーム Participantが開く ボイスルーム
  4. # jsfes 音声通信を橋渡ししてくれるだけのサービスなので、ユーザー のニックネームやサムネイルなどは別で管理する必要がある。 ユーザーがルームを作成した り閲覧しつつ、ルームに入れ るようにしたいので、agoraの ルームと一対になるルーム テーブルをFirestoreに作成。 アクセスされた端末でデバ イスIDを生成、ローカルス

    トレージとFirestoreのユー ザーテーブルに保存して、 ニックネームなど管理でき るようにする。 それぞれのルームレコード に誰が今そのルームに入っ ているか、ユーザーIDやデ バイスIDを紐付ける。 agoraはWebRTCなのでそれぞれの通信はP2Pでやりとり される。agoraはそれぞれのユーザーをつなげる役割。 課題