Skip to content

[WIP] WebRTCを利用したP2Pチャットサービス

Notifications You must be signed in to change notification settings

rinsuki-lab/p2p-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

p2p-chat

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

仕組み

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

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

課題

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

今後やりたいこと

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

About

[WIP] WebRTCを利用したP2Pチャットサービス

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published