Skip to content

Latest commit

 

History

History
28 lines (20 loc) · 1.46 KB

README.md

File metadata and controls

28 lines (20 loc) · 1.46 KB

p2p-chat

WebRTC を利用した、 P2P チャットサービス

仕組み

WebRTC の RTCDataChannel を利用し、P2Pのフルメッシュネットワークを構築してその上でチャットデータを流しています。

サーバーは、静的アセットの配信とピア同士のマッチングに必要な情報(SDP/Candidate)の融通のみを行なっており、チャット内容には一切関与していません。

課題

  • あとから来た人にそれまでのチャットログを提供できていない
    • P2Pの仕様上、本当に正しいチャットログを提供するのは難しい
    • 正しさが担保されなくてもよいのであれば、一番長いログを持っている人があとから来た人にログを送信すればよい
  • ネットワーク環境によって、チャットに接続できない
    • TURNサーバーを立てれば解決できるが、めんどうくさい
    • 遊びなので許してくれ
  • ネットワーク環境の相性などによって、一部の参加者と通信できなかったりする
    • P2Pのフルメッシュネットワークの弱み

今後やりたいこと

  • Mastodonなどを利用した、非中央集権型チャットサービス
    • ActivityPubなどの上でマッチング用の情報を流してもらう
    • 参加者の身元がわかる
  • E2E暗号化
    • WebRTCの層でもうされているようなので、さらにその上でやる必要はあるのか