【要約】月次定例を"ニコニコ動画"にした ─ 観客全員の画面をリアルタイム同期して、コメントが流れるWebアプリをGASだけで作った話 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
登壇者がプレゼンを行う際、観客が受動的になり、意識が手元のデバイスへ逸れてしまうという構造的な課題があった。発表が一方通行であるために、参加者の集中力が維持できないことが問題視されていた。
- ・観客の受動的な視聴スタイルによる集中力の低下
- ・リアルタイムな双方向コミュニケーションの欠如
- ・GAS環境におけるWebSocket利用不可という技術的制約
// Approach
専用サーバーを構築せず、GASの機能を最大限に活用して「クライアントが定期的に状態を確認する」ポーリング方式を採用した。
- ・ポーリングによる同期: 2.5秒間隔でサーバーの状態を読み取る仕組みを構築した。
- ・状態管理の最適化: ページ番号(scene)に加え、更新カウンター(seq)を導入し、状態の変化を確実に検知した。
- ・コメント機能の相乗り: 同期用のポーリングに、コメントID(cid)を用いた差分取得を組み込み、通信負荷を軽減した。
- ・認証の簡略化: GASのデプロイ設定を利用し、組織内ユーザーのみがアクセスできる権限管理を行った。
// Result
登壇者の操作に合わせ、観客全員の端末が最大2.5秒の遅延で同期する環境を構築した。
- ・観客がコメントを投稿できる双方向性の実現
- ・サーバーレスかつ無料での運用コストの達成
- ・プレゼンを「報告会」から「参加型コンテンツ」へと変貌させた
Senior Engineer Insight
> 技術選定の「割り切り」が極めて合理的である。WebSocketを諦め、ポーリングで「十分な体験」に落とし込んだ点は、開発コストと運用の容易さを優先する現場判断として評価できる。ただし、GASの同時実行数やクォータ制限があるため、数百人規模の同時接続には耐えられない。あくまで社内ツールや小規模イベントに特化した、エッジの効いた設計である。