Beispiel #1
0
        public void BasicSerialization()
        {
            MqttPingRequestMessage pingReqMsg = new MqttPingRequestMessage();

            byte[] bytes = MessageSerializationHelper.GetMessageBytes(pingReqMsg);

            Assert.Equal <byte>(192, bytes[0]);
        }
Beispiel #2
0
        /// <summary>
        /// Parse bytes for a PINGREQ message
        /// </summary>
        /// <param name="fixedHeaderFirstByte">First fixed header byte</param>
        /// <param name="protocolVersion">Protocol Version</param>
        /// <param name="channel">Channel connected to the broker</param>
        /// <returns>PINGREQ message instance</returns>
        public static MqttPingRequestMessage Parse(byte fixedHeaderFirstByte, byte protocolVersion, IMqttNetworkChannel channel)
        {
            MqttPingRequestMessage msg = new MqttPingRequestMessage();

            if (protocolVersion == MqttConnectMessage.PROTOCOL_VERSION_V3_1_1)
            {
                // [v3.1.1] check flag bits
                if ((fixedHeaderFirstByte & MSG_FLAG_BITS_MASK) != MQTT_MSG_PINGREQ_FLAG_BITS)
                {
                    throw new MqttClientException(MqttClientErrorCode.InvalidFlagBits);
                }
            }

            // already know remaininglength is zero (MQTT specification),
            // so it isn't necessary to read other data from socket
            int remainingLength = MqttMessage.DecodeRemainingLength(channel);

            return(msg);
        }