mqtt-hs-1.0.2: A MQTT client library.

CopyrightLukas Braun 2014-2016
Safe HaskellNone




Parsers for MQTT messages.



type MessageParser a = StateT Word32 Parser a Source #

Type of a parser that also keeps track of the remaining length.

message :: Parser SomeMessage Source #

Parse any MQTT message.

Fixed Header

mqttHeader :: Parser (MsgType, MqttHeader) Source #

Parser for the fixed header part of a MQTT message.

parseRemaining :: Parser Word32 Source #

Parse the 'remaining length' field that indicates how long the rest of the message is.

Message Body

mqttBody :: MqttHeader -> SMsgType t -> Word32 -> Parser (MessageBody t) Source #

«mqttBody header msgtype remaining» parses a Message of type msgtype that is remaining bytes long.

Utility functions

getTopic :: MessageParser Topic Source #

Parse a topic name.

mqttText :: MessageParser MqttText Source #

Parse a length-prefixed UTF-8 string.

anyWord16BE :: (Num a, Bits a) => MessageParser a Source #

Parse a big-endian 16bit integer.

anyWord8' :: MessageParser Word8 Source #

A lifted version of attoparsec's anyWord8 that also subtracts 1 from the remaining length.

take' :: Word32 -> MessageParser ByteString Source #

A lifted version of attoparsec's take that also subtracts the length.

parseLength :: Word32 -> MessageParser () Source #

Subtract n from the remaining length or fail if there is not enough input left.

toQoS :: (Num a, Eq a, Show a, Monad m) => a -> m QoS Source #

Convert a number to a QoS. fail if the number can't be converted.