Beispiel #1
0
        //this is called when messages are sent 1 by 1
        public void send(HikePacket packet, int qos)
        {
            if (!isConnected())
            {
                /* only care about failures for messages we care about. */
                if (qos > 0)
                {
                    try
                    {
                        MqttDBUtils.addSentMessage(packet);
                    }
                    catch (Exception e)
                    {
                    }
                }
                this.connect();
                return;
            }
            PublishCB pbCB = null;

            if (qos > 0)
            {
                pbCB = new PublishCB(packet, this, qos, false);
            }
            mqttConnection.publish(this.topic + HikeConstants.PUBLISH_TOPIC,
                                   packet.Message, (QoS)qos == 0 ? QoS.AT_MOST_ONCE : QoS.AT_LEAST_ONCE,
                                   pbCB);
        }
Beispiel #2
0
 //this is called to send unsent messages. They all are sent in a single thread
 public void sendAllUnsentMessages(List <HikePacket> packets)
 {
     if (!isConnected())
     {
         this.connect();
         return;
     }
     byte[][]    messagesToSend   = new byte[packets.Count][];
     PublishCB[] messageCallbacks = new PublishCB[packets.Count];
     for (int i = 0; i < packets.Count; i++)
     {
         messageCallbacks[i] = new PublishCB(packets[i], this, 1, true);
         messagesToSend[i]   = packets[i].Message;
     }
     mqttConnection.publish(this.topic + HikeConstants.PUBLISH_TOPIC,
                            messagesToSend, QoS.AT_LEAST_ONCE,
                            messageCallbacks);
 }