/// <summary> /// Sends a new user their unique RSA keypair /// </summary> /// <param name="client"></param> /// <param name="clientSocket"></param> private static async Task SendWelcomeMessage(AuthClient client, WebSocket clientSocket) { var welcomeMessage = JsonConvert.SerializeObject(new { endpoint = "connectedToUlterius", results = new { message = "Ulterius server online!", publicKey = Rsa.SecureStringToString(client.PublicKey) } }); if (clientSocket != null) { try { await clientSocket.WriteStringAsync(welcomeMessage, CancellationToken.None); var userCount = AllClients.Count; var extra = userCount > 1 ? "s" : string.Empty; UlteriusTray.ShowMessage($"There are now {userCount} user{extra} connected.", "A new user connected!"); } catch (Exception ex) { Console.WriteLine("Failed to write welcome message " + ex.Message); } } }
/// <summary> /// Remove a client when it disconnects /// </summary> /// <param name="clientSocket"></param> private static void HandleDisconnect(WebSocket clientSocket) { AuthClient temp = null; if (AllClients.TryRemove(clientSocket.GetHashCode().ToString(), out temp)) { Console.WriteLine("Disconnection from " + clientSocket.RemoteEndpoint); var userCount = AllClients.Count; var extra = userCount < 1 ? "s" : string.Empty; UlteriusTray.ShowMessage($"There are now {userCount} user{extra} connected.", "A user disconnected!"); } }
/// <summary> /// Sends a new user their unique RSA keypair /// </summary> /// <param name="client"></param> /// <param name="clientSocket"></param> private static void SendWelcomeMessage(AuthClient client, WebSocket clientSocket) { var welcomeMessage = JsonConvert.SerializeObject(new { endpoint = "connectedToUlterius", results = new { message = "Ulterius server online!", publicKey = Rsa.SecureStringToString(client.PublicKey) } }); clientSocket.WriteStringAsync(welcomeMessage, CancellationToken.None); var userCount = AllClients.Count; var extra = userCount > 1 ? "s" : string.Empty; UlteriusTray.ShowMessage($"There are now {userCount} user{extra} connected.", "A new user connected!"); }