//private void OnIpAddressChanged(object sender, TextChangedEventArgs e)
        //{
        //    Preferences.Set("ip_address", e.NewTextValue);
        //}

        private async void ConnectToDevice(ConnectionPayload payload)
        {
            ClientConnection.Instance.Connect(payload);
            try
            {
                await TaskExtension.WaitUntil(() => ClientConnection.Instance.IsConnected, timeout : 5000);
            }
            catch (TimeoutException e)
            {
                Console.WriteLine("Connection timed out");
            }
            if (ClientConnection.Instance.IsConnected)
            {
                await SecureStorage.SetAsync("connection_payload", JsonConvert.SerializeObject(payload));
                await DisplayAlert("Success!", "You are connected to your device", "OK");

                await Navigation.PushAsync(new ItemsPage(), true);
            }
            else
            {
                await DisplayAlert("Error!", "Failed connecting to your device", "OK");

                SecureStorage.Remove("connection_payload");
            }
        }
示例#2
0
        public void SetAuthentication(WebSocketServer webSocketServer)
        {
            var password          = HasToken() ? LoadToken() : CreateToken();
            var connectionPayload = new ConnectionPayload(webSocketServer.IsSecure ? "wss" : "ws", IpUtils.GetLocalIpAddress(), webSocketServer.Port, "user", password);

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            var             qrCodeData  = qrGenerator.CreateQrCode(JsonConvert.SerializeObject(connectionPayload), QRCodeGenerator.ECCLevel.Q);

            connectionQRCode = new PngByteQRCode(qrCodeData);

            webSocketServer.AuthenticationSchemes = WebSocketSharp.Net.AuthenticationSchemes.Basic;
            webSocketServer.UserCredentialsFinder = (id) =>
            {
#if LOCAL
                return(new WebSocketSharp.Net.NetworkCredential("username", "password"));
#else
                return(id.Name == connectionPayload.AuthenticationUsername ?
                       new WebSocketSharp.Net.NetworkCredential(connectionPayload.AuthenticationUsername, connectionPayload.AuthenticationPassword) :
                       null);
#endif
            };
        }
 protected virtual void OnConnectionClosingError(ConnectionPayload payload)
 {
 }
 protected virtual void OnConnectionClosed(ConnectionPayload payload)
 {
 }
 protected virtual void OnConnectionOpened(ConnectionPayload payload)
 {
 }
示例#6
0
 public bool Connect(ConnectionPayload connectionPayload)
 {
     Connection = ConnectionFactory.GetConnection(connectionPayload);
     return(Connection.IsAlive);
 }