public void Run(IBackgroundTaskInstance taskInstance)
        {
            var defferal = taskInstance.GetDeferral();

            var taskHelper = new TaskHelper();

            var signalingTask = taskHelper.GetTask(nameof(SignalingTask));

            var connOwner = new ConnectionOwner
            {
                OwnerId = signalingTask.TaskId.ToString()
            };

            Hub.Instance.SignalingSocketService.ConnectToSignalingServer(connOwner);

            Hub.Instance.SignalingClient.Register(new Registration
            {
                Name   = RegistrationSettings.Name,
                UserId = RegistrationSettings.UserId,
                Domain = RegistrationSettings.Domain,
                PushNotificationChannelURI = RegistrationSettings.PushNotificationChannelURI
            });

            defferal.Complete();
        }
예제 #2
0
 public IAsyncOperation <ConnectionStatus> ConnectToSignalingServerAsync(ConnectionOwner connectionOwner)
 {
     return(InvokeHubChannelAsync <ISignalingSocketChannel, ConnectionStatus>(new ConnectionOwner
     {
         OwnerId = _taskHelper.GetTask(nameof(SignalingTask)).TaskId.ToString()
     }));
 }
        public ConnectionStatus ConnectToSignalingServer(ConnectionOwner connectionOwner)
        {
            try
            {
                SignaledPeerData.Reset();
                SignalingStatus.Reset();
                SignaledRelayMessages.Reset();

                var socket = new StreamSocket();
                socket.EnableTransferOwnership(Guid.Parse(connectionOwner.OwnerId),
                                               SocketActivityConnectedStandbyAction.Wake);
                socket.ConnectAsync(new HostName(SignalingSettings.SignalingServerHost),
                                    SignalingSettings.SignalingServerPort, SocketProtectionLevel.PlainSocket)
                .AsTask()
                .Wait();
                socket.TransferOwnership(SignalingSocketOperation.SignalingSocketId);
                return(new ConnectionStatus
                {
                    IsConnected = true
                });
            }
            catch (Exception exception)
            {
                Debug.Write("Failed to connect to signalling server: ex: " + exception.Message);
                return(new ConnectionStatus
                {
                    IsConnected = false
                });
            }
        }
예제 #4
0
        public ConnectionStatus ConnectToSignalingServer(ConnectionOwner connectionOwner)
        {
            SignaledPeerData.Reset();
            SignalingStatus.Reset();
            SignaledRelayMessages.Reset();
            _streamSocket = new StreamSocket();
            _streamSocket.ConnectAsync(new HostName(SignalingSettings.SignalingServerHost),
                                       SignalingSettings.SignalingServerPort, SocketProtectionLevel.PlainSocket)
            .AsTask()
            .Wait();

            _isConnected = true;

            _signalingClient = _unityContainer.Resolve <SignalingClient>();

            StartReading();

            return(new ConnectionStatus
            {
                IsConnected = _isConnected
            });
        }
        public IAsyncOperation <ConnectionStatus> ConnectToSignalingServerAsync(ConnectionOwner connectionOwner)
        {
            return(Task.Run(async() =>
            {
                try
                {
                    SignaledPeerData.Reset();
                    SignalingStatus.Reset();
                    await SignaledInstantMessages.ResetAsync();

                    var socket = new StreamSocket();
                    socket.EnableTransferOwnership(Guid.Parse(connectionOwner.OwnerId),
                                                   SocketActivityConnectedStandbyAction.Wake);

                    var connectCancellationTokenSource = new CancellationTokenSource(2000);
                    var connectAsync = socket.ConnectAsync(new HostName(SignalingSettings.SignalingServerHost),
                                                           SignalingSettings.SignalingServerPort, SocketProtectionLevel.PlainSocket);
                    var connectTask = connectAsync.AsTask(connectCancellationTokenSource.Token);
                    await connectTask;

                    socket.TransferOwnership(SignalingSocketOperation.SignalingSocketId);
                    return new ConnectionStatus
                    {
                        IsConnected = true
                    };
                }
                catch (Exception exception)
                {
                    Debug.WriteLine("Failed to connect to signalling server: ex: " + exception.Message);
                    return new ConnectionStatus
                    {
                        IsConnected = false
                    };
                }
            }).AsAsyncOperation());
        }
예제 #6
0
 public NetworkConnection(string busName, string objectPath, ConnectionOwner owner) : base(busName, objectPath)
 {
     this.Owner = owner;
     //Workaround for bad signals from NM
     //BusObject.Removed += OnDeviceRemoved;
 }
예제 #7
0
 public WiredConnection(string busName, string objectPath, ConnectionOwner owner) : base(busName, objectPath, owner)
 {
 }
		public WirelessConnection (string busName, string objectPath, ConnectionOwner owner) : base (busName, objectPath, owner)
		{
		}