Dev Structure - arisucool/as-playground GitHub Wiki
as-playground の構造
as-playground の構成要素や構造をチャートで表しています。ただし、わかりやすさのために一部簡略化している場合があります。
※ WebRTC は、あくまで、本人の端末間でコメントデータ (文字列) を転送するために使用しています。詳しくは、ユーザ向け FAQ もご参照ください。
基本 (ブックマークレット版)
基本的には、イベント名、コメントデータ、現在の再生位置 (各コメントのタイミングを知るため) のみ取得しています。
flowchart TB;
subgraph Host["Host (PC or タブレットなど) のブラウザ"]
subgraph As["AS*BI STAGE を開いているタブ"]
AsPage["AS*BI STAGE"]
AsBridge
subgraph HostAngularApp["Iframe (Angular App)"]
HostComponent["HostComponent<br>(コメントの分析、コメントのオーバレイ表示)"]
end
end
Bookmarklet["ブックマークレット"]
end
subgraph AsServer["AS*BI STAGE のサーバ"]
AsCommentServer["コメントサーバ"]
end
Bookmarklet--"AsBridge を<br>ページ内に注入"-->AsBridge
AsPage--"DOM (コメントデータ, 再生位置)"-->AsBridge
AsBridge--"postMessage (コメントデータ, 再生位置)"-->HostComponent
HostComponent--"postMessage (制御)"-->AsBridge
AsCommentServer--"WebSocket (コメントデータ)"-->AsPage
subgraph Viewer["Viewer (本人のスマートフォン等) のブラウザ"]
subgraph ViewerAngularApp["Angular App"]
ViewerComponent["Viewer Component<br>(コメントの閲覧)"]
end
end
HostComponent--"WebRTC (コメントデータ)"-->ViewerComponent
Chrome拡張機能版
ブックマークレット版の取得内容に加え、コメントを投稿するための情報を読み書きしています。
flowchart TB;
subgraph AsServer["AS*BI STAGE のサーバ"]
AsCommentServer["コメントサーバ"]
end
subgraph Host["Host (PC or タブレットなど) のブラウザ"]
subgraph As["AS*BI STAGE のページ"]
AsPage["AS*BI STAGE"]
AsBridge
WebSocketHook
subgraph HostAngularApp["Iframe (Angular App)"]
HostComponent["HostComponent<br>(コメントの分析、コメントのオーバレイ表示)"]
end
end
subgraph ChromeExtension["Chrome拡張機能"]
ContentScript["ContentScript"]
end
end
ChromeExtension--"AsBridge を<br>ページ内に注入"-->AsBridge
ChromeExtension--"WebSocketHook を<br>ページ内に注入"-->WebSocketHook
WebSocketHook<--"WebSocket (コメントデータ)"-->HostComponent
AsPage--"DOM (再生位置)"-->AsBridge
AsBridge--"postMessage (再生位置)"-->HostComponent
HostComponent--"postMessage (制御)"-->AsBridge
AsCommentServer<--"WebSocket (コメントデータ)"-->WebSocketHook<--"WebSocket (コメントデータ)"-->AsPage
subgraph Viewer["Viewer (本人のスマートフォン等) のブラウザ"]
subgraph ViewerAngularApp["Angular App"]
ViewerComponent["Viewer Component<br>(コメントの閲覧・投稿)"]
end
end
HostComponent<--"WebRTC (コメントデータ)"-->ViewerComponent