private void poruka(object sender, MqttMsgPublishEventArgs e) // Ispis pristigle poruke { Dispatcher.Invoke((Action)(() => // sinkronizira dretve ukoliko stigne poruka tako da ju moze koristiti prilikom ispisa { Chat.AppendText("\n" + Encoding.UTF8.GetString(e.Message)); //ispisi text })); }
public void WriteMessage(string user, string message) { Dispatcher.BeginInvoke((Action)(() => { string date = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + ":" + DateTime.Now.Second; string result = date + " " + user + ": " + message + Environment.NewLine; Chat.AppendText(result); })); }
public void AddText(string text, bool newLine, Color color) { if (Chat.Text.Length > 2) { Chat.Select(Chat.Text.Length - 2, 2); Chat.SelectedText = " "; } int start = Chat.TextLength; Chat.AppendText(newLine? "\n" + text + "\n\n" : text + "\n\n"); int end = Chat.TextLength; Chat.Select(start, end - start); Chat.SelectionColor = color; Chat.DeselectAll(); Chat.ScrollToCaret(); }
public Window1(string _value, string _value2, string _value3) // Prenesene varijable { InitializeComponent(); broker = _value; // spremi lokalne prenesene varijable u globalne topic = _value2; username = _value3; Client = new MqttClient(broker); // Povezi se na broker Chat.AppendText("\nWelcome to chat!\nTopic: "); Chat.AppendText(topic.ToString() + "\n"); Client.MqttMsgPublishReceived += poruka; // Dohvati poruku Client.Connect(Guid.NewGuid().ToString()); // Povezi klijenta (Klijent ID) Client.Subscribe(new string[] { topic }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE }); // Subscribe korisnika na temu string pristup = GetTimestamp(DateTime.Now); // Dohvati trenutno vrijeme Client.Publish(topic, Encoding.UTF8.GetBytes("[" + pristup + "] [Korisnik " + username + " je ušao u sobu " + topic + ".]"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false); // Poruka o novom korisniku }