Exemple #1
0
 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
     }));
 }
Exemple #2
0
 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);
     }));
 }
Exemple #3
0
        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();
        }
Exemple #4
0
        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
        }