static void TestThread(object d) { TcpClient client = new TcpClient("novastudios.tk", 8910); Message secure = MessageHelpers.GetMessage(client.GetStream()); User user = null; if (secure.Content != "") { SslStream ssl = new SslStream(client.GetStream(), false); ssl.AuthenticateAsClient(secure.Content); user = new User(Guid.NewGuid().ToString(), ssl); user.Init(); } else { user = new User(Guid.NewGuid().ToString(), client.GetStream()); user.Init(); } user.OnMessageStatusReceivedCallback += (message) => { if (message.StatusType == StatusType.ErrorDisconnect) { Console.WriteLine(user.Name + " Error: " + message.Content); } }; Random rnd = new Random(); Console.WriteLine("Worker Running"); while (!cts.IsCancellationRequested) { user.CreateMessage(RandomString(rnd, 20), NColor.GenerateRandomColor()); Thread.Sleep(rnd.Next(750, 1000)); } user.CreateStatus(StatusType.Disconnecting); try { user.Close(); } catch { } Console.WriteLine("Worker Quit"); }
public ChatUI() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Enabled; Color = NColor.GenerateRandomColor(); Window.Current.Closed += (s, e) => { if (user != null) { user.CreateStatus(StatusType.Disconnecting); } }; Loaded += async(s, e) => { if (!connected) { client = new TcpClient(); await client.ConnectAsync(Address, Port); NetworkStream stream = client.GetStream(); Message secure = MessageHelpers.GetMessage(stream); string password = ""; if (secure.Name == "locked") { PasswordDialog pd = new PasswordDialog(); if (await pd.ShowAsync() == ContentDialogResult.Primary) { password = pd.Password; } else { if (Frame.CanGoBack) { Frame.GoBack(); } } } if (secure.Content != "") { SslStream ssl = new SslStream(stream); ssl.AuthenticateAsClient(secure.Content); user = new User(Username, ssl); user.Init(password); } else { user = new User(Username, stream); user.Init(password); } user.OnMessageReceivedCallback += User_OnMessageReceivedCallback; user.OnMessageStatusReceivedCallback += User_OnMessageStatusReceivedCallback; user.OnMessageTransferReceivedCallback += User_OnMessageTransferReceivedCallback; user.OnMessageWhisperReceivedCallback += User_OnMessageWhisperReceivedCallback; user.OnMessageInitReceivedCallback += User_OnMessageInitReceivedCallback; user.OnMesssageInformationReceivedCallback += User_OnMesssageInformationReceivedCallback; user.OnErrorCallback += (d) => { Debug.WriteLine(d.Message); }; connected = true; } }; }