Exemple #1
0
        protected string ReadStringFromStream(MessageStream input)
        {
            ushort len = ReadUshortFromStream(input);

            byte[]       data = input.readBytes(len);
            UTF8Encoding enc  = new UTF8Encoding();

            return(enc.GetString(data, 0, data.Length));
        }
 protected override void readMessage(MessageStream input, int msgLength)
 {
     base.readMessage(input, msgLength);
     while (input.Size() > 0)
     {
         String topic = ReadStringFromStream(input);
         //System.out.println("Topic : " + topic);
         topics.Add(topic);
         topicQoSs.Add((QoS)input.readByte());
     }
 }
        protected override void readMessage(MessageStream input, int msgLength)
        {
            short msb = input.readByte();
            byte  lsb = input.readByte();
            int   id  = msb << 8;

            id += lsb;
            setMessageId(id);

            //            setMessageId((short)(input.readByte() >> 8 + input.readByte()));
        }
        protected override void readMessage(MessageStream input, int msgLength)
        {
            base.readMessage(input, msgLength);
            int pos = 2;

            while (pos < msgLength)
            {
                QoS qos = (QoS)(input.readByte());
                addQoS(qos);
                pos++;
            }
        }
        protected override void readMessage(MessageStream input, int msgLength)
        {
            int pos = 0;

            topic = ReadStringFromStream(input);

            pos += FormatUtil.toMQttString(topic).Length;
            if (getQos() != QoS.AT_MOST_ONCE)
            {
                base.readMessage(input, msgLength);
                pos += 2;
            }
            int payloadSize = (msgLength - pos);

            data = input.readBytes(payloadSize);
        }
        protected override void readMessage(MessageStream input, int msgLength)
        {
            ReadStringFromStream(input);   //PROTOCOL_ID
            input.readByte();              // PROTOCOL_VERSION
            byte flags = input.readByte(); //flags

            keepAlive = (short)ReadUshortFromStream(input);
            clientId  = ReadStringFromStream(input);

            if (((flags & 0x04) != 0))
            {
                willTopic = ReadStringFromStream(input);
                will      = ReadStringFromStream(input);
            }

            username = ((flags & 0x80) == 0) ? null : ReadStringFromStream(input);
            password = ((flags & 0x40) == 0) ? null : ReadStringFromStream(input);

            retainWill = ((flags & 0x20) > 0);
            willQoS    = (QoS)(Convert.ToUInt16(flags & 0x18) >> 3);
        }
        protected override void readMessage(MessageStream input, int msgLength)
        {
            if (msgLength != 2)
            {
                //            throw new IllegalStateException("Message Length must be 2 for CONNACK. Current value: " + msgLength);
            }
            // Ignore first byte
            input.readByte();
            int result = input.readByte();

            switch (result)
            {
            case 0:
                status = ConnectionStatus.ACCEPTED;
                break;

            case 1:
                status = ConnectionStatus.UNACCEPTABLE_PROTOCOL_VERSION;
                break;

            case 2:
                status = ConnectionStatus.IDENTIFIER_REJECTED;
                break;

            case 3:
                status = ConnectionStatus.SERVER_UNAVAILABLE;
                break;

            case 4:
                status = ConnectionStatus.BAD_USERNAME_OR_PASSWORD;
                break;

            case 5:
                status = ConnectionStatus.NOT_AUTHORIZED;
                break;

            default:
                throw new NotSupportedException("Unsupported CONNACK code: " + result);
            }
        }
Exemple #8
0
        /// <summary>
        /// composes a message object from messagestream. throws exception if the message is incomplete in buffer as of now.
        /// </summary>
        /// <param name="input"></param>
        /// <param name="flags">flags to be restored in message stream in case message is incomplete as of now</param>
        public void read(MessageStream input)
        {
            int msgLength = input.readMsgLength();

            readMessage(input, msgLength);
        }
Exemple #9
0
 protected ushort ReadUshortFromStream(MessageStream input)
 {
     return((ushort)((input.readByte() << 8) + input.readByte()));
 }
Exemple #10
0
 protected virtual void readMessage(MessageStream input, int msgLength)
 {
 }