예제 #1
0
        public void BeginLoop(ManualResetEvent go)
        {
            //Call this before starting a peer connection
            SpitfireRtc.InitializeSSL();
            //Add a stun server
            Spitfire.AddServerConfig(new ServerConfig
            {
                Host = "stun.l.google.com",
                Port = 19302,
                Type = ServerType.Stun,
            });

            var started = Spitfire.InitializePeerConnection();

            if (started)
            {
                go.Set();
                //Keeps the RTC thread alive and active
                while (!Token.Token.IsCancellationRequested && Spitfire.ProcessMessages(1000))
                {
                    Spitfire.ProcessMessages(1000);
                }
                //Do cleanup here
                Console.WriteLine("WebRTC message loop is dead.");
            }
        }
예제 #2
0
        /// <summary>
        /// Setup new generic RTCPeerConnection
        /// </summary>
        /// <returns></returns>
        public SpitfireRtc HandleNewPeer()
        {
            SpitfireRtc rtcPeerConnection = new SpitfireRtc();

            rtcPeerConnection.AddServerConfig(new ServerConfig()
            {
                Host = "stun.1.google.com",
                Port = 19302,
                Type = ServerType.Stun
            });

            SpitfireRtc.InitializeSSL();
            rtcPeerConnection.InitializePeerConnection();

            rtcPeerConnection.CreateDataChannel(new DataChannelOptions()
            {
                Id       = 1,
                Label    = "skeletonChannel",
                Reliable = false
            });

            rtcPeerConnection.CreateDataChannel(new DataChannelOptions()
            {
                Id       = 3,
                Label    = "cloudChannel",
                Reliable = false
            });

            SetupCallbacks(rtcPeerConnection);

            return(rtcPeerConnection);
        }
예제 #3
0
 public void BeginLoop(ManualResetEvent go)
 {
     //Call this before starting a peer connection
     SpitfireRtc.InitializeSSL();
     //Add a stun server
     Spitfire.AddServerConfig(new ServerConfig
     {
         Host = "stun.l.google.com",
         Port = 19302,
         Type = ServerType.Stun,
     });
     if (Spitfire.InitializePeerConnection())
     {
         go.Set();
         //You only need this until the datachannel opens or the ice state is connected.
         while (!Token.Token.IsCancellationRequested && Spitfire.ProcessMessages(1000))
         {
             Spitfire.ProcessMessages(1000);
         }
     }
 }
예제 #4
0
        public void BeginLoop(ManualResetEvent go)
        {
            //Call this before starting a peer connection
            SpitfireRtc.InitializeSSL();
            Spitfire.AddServerConfig(new ServerConfig {
                Host = "52.210.97.83", Username = "******", Password = "******", Port = 3478, Type = ServerType.Turn
            });
            //Spitfire.AddServerConfig("turn:52.210.97.83:3478?transport=tcp", "dvw", "helloice1");

            var started = Spitfire.InitializePeerConnection();

            if (started)
            {
                go.Set();
                //Keeps the RTC thread alive and active
                while (!Token.Token.IsCancellationRequested && Spitfire.ProcessMessages(1000))
                {
                    Spitfire.ProcessMessages(1000);
                }
                //Do cleanup here
                Console.WriteLine("WebRTC message loop is dead.");
            }
        }