Exemplo n.º 1
0
        /// <summary>
        /// Message Handler: Received Ice Candidate.
        /// Client only.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="candidate"></param>
        private async void ReceivedIceCandidate(object sender, SignallerMessage message)
        {
            var             init      = JsonConvert.DeserializeObject <RTCIceCandidateInit>(message.Contents);
            RTCIceCandidate candidate = new RTCIceCandidate(init);

            await this.PeerConnections[this.LastRegisteredPeer].AddIceCandidate(candidate);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Message Handler: Received Answer.
        /// Client only.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="answer"></param>
        private async void ReceivedAnswer(object sender, SignallerMessage message)
        {
            RTCSessionDescription answer = this.DeserializeSessionDescription(message.Contents);

            await this.PeerConnections[this.LastRegisteredPeer].SetRemoteDescription(answer);
            this.PeerConnections[this.LastRegisteredPeer].OnIceCandidate += this.OnIceCandidate;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Message Handler: Received Offer.
        /// Source only.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="offer"></param>
        private async void ReceivedOffer(object sender, SignallerMessage message)
        {
            RTCSessionDescription offer = this.DeserializeSessionDescription(message.Contents);

            this.PeerConnections.Add(this.LastRegisteredPeer, await this.BuildPeerConnection(this.MediaOpts));

            await this.PeerConnections[this.LastRegisteredPeer].SetRemoteDescription(offer);

            var answer = await this.PeerConnections[this.LastRegisteredPeer].CreateAnswer(new RTCAnswerOptions());

            await this.PeerConnections[this.LastRegisteredPeer].SetLocalDescription(answer);
            await this.SendAnswer((RTCSessionDescription)answer);

            this.PeerConnections[this.LastRegisteredPeer].OnIceCandidate += this.OnIceCandidate;
        }
Exemplo n.º 4
0
        private async void ReceivedShutdown(object sender, SignallerMessage message)
        {
            // source -> all clients
            if (message.Contents == "")
            {
                this.Signaller.DisconnectFromSignaller();
                await this.Shutdown();

                await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    this.RemoteVideo.Visibility = Visibility.Collapsed;
                });
            }
            // client #message.Contents -> source
            else
            {
                await this.ShutdownIndividual(message.Contents);
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Message Handler: Received Registration ID.
 /// Source only.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="message"></param>
 private void ReceivedRegistration(object sender, SignallerMessage message)
 {
     this.LastRegisteredPeer = message.Contents.ToString();
 }