Ejemplo n.º 1
0
        public void PublishNewMessageAsync(Message message)
        {
            string topic = string.Format("{0}/{1}", message.Receiver, PhoneNumber);

            byte[] data = Encoding.UTF8.GetBytes(message.Text);
            if (mqttClient.IsConnected)
            {
                mqttClient.Publish(topic, data, MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, true);
                AppDataBase.SaveItemAsync(message);
            }
        }
Ejemplo n.º 2
0
        public void ClientMqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            string receivedMessage = Encoding.Default.GetString(e.Message);

            string[] topicLevels = e.Topic.Split('/');

            if (topicLevels.Length == 2)
            {
                string  messageSender = topicLevels[1];
                Message message       = new Message()
                {
                    Text        = receivedMessage,
                    Sender      = messageSender,
                    Receiver    = PhoneNumber,
                    CreatedTime = DateTime.Now,
                    Status      = MessageStatus.NotRead
                };
                AppDataBase.SaveItemAsync(message);
                MessagingCenter.Send(this, "newMessageReceived", message);
            }
        }