74 lines
1.6 KiB
Plaintext
74 lines
1.6 KiB
Plaintext
@startuml
|
|
|
|
title WebRTC
|
|
|
|
actor ClientA as ClientA
|
|
participant "Signal" as Signal
|
|
participant "Stun" as Stun
|
|
actor ClientB as ClientB
|
|
|
|
autonumber
|
|
|
|
ClientA -> Signal: Connect
|
|
activate Signal
|
|
ClientB -> Signal: Connect
|
|
deactivate Signal
|
|
|
|
ClientA -> ClientA: new PeerConnection
|
|
activate ClientA
|
|
ClientA -> ClientA: addStream
|
|
deactivate ClientA
|
|
|
|
ClientB -> ClientB: new PeerConnection
|
|
activate ClientB
|
|
ClientB -> ClientB: addStream
|
|
deactivate ClientB
|
|
|
|
ClientA -> ClientA: createOffer & setLocalDescription
|
|
activate ClientA
|
|
ClientA -> Signal: Send Offer SDP
|
|
activate Signal
|
|
Signal -> ClientB: Relay Offer SDP
|
|
activate ClientB
|
|
ClientB -> ClientB: setRemoteDescription
|
|
ClientB -> ClientB: createAnswer & setLocalDescription
|
|
ClientB --> Signal: Send Answer SDP
|
|
deactivate ClientB
|
|
Signal --> ClientA: Relay Answer SDP
|
|
deactivate Signal
|
|
ClientA -> ClientA: setRemoteDescription
|
|
deactivate ClientA
|
|
|
|
ClientA -> Stun: ICE Request
|
|
activate ClientA
|
|
activate Stun
|
|
Stun --> ClientA: onicecandidate
|
|
deactivate Stun
|
|
ClientA -> Signal: Send ICE Candidate
|
|
activate Signal
|
|
Signal -> ClientB: Relay ICE Candidate
|
|
activate ClientB
|
|
ClientB -> ClientB: addIceCandidate
|
|
ClientB -> Stun: ICE Request
|
|
activate Stun
|
|
Stun --> ClientB: onicecandidate
|
|
deactivate Stun
|
|
ClientB--> Signal: Send ICE Candidate
|
|
deactivate ClientB
|
|
Signal --> ClientA: Relay ICE Candidate
|
|
deactivate Signal
|
|
ClientA -> ClientA: addIceCandidate
|
|
deactivate ClientA
|
|
|
|
ClientA <-> ClientB: Media
|
|
activate ClientA
|
|
activate ClientB
|
|
ClientA -> ClientA: onaddstream
|
|
ClientB -> ClientB: onaddstream
|
|
ClientA -> ClientA: onremovestream
|
|
ClientB -> ClientB: onremovestream
|
|
ClientA <-> ClientB: Media
|
|
deactivate ClientA
|
|
deactivate ClientB
|
|
|
|
@enduml |