//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"); } }
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) { }
public bool Connect(ConnectionPayload connectionPayload) { Connection = ConnectionFactory.GetConnection(connectionPayload); return(Connection.IsAlive); }