/c-mosquitto

Simple Amazon IoT compatible client

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

c-mosquitto

Full code

main :: IO ()
main = runCommand $ \MainOptions{..} args -> M.withMosquittoLibrary $ do
  print M.version

  m <- M.newMosquitto True "server" (Just ())
  M.setTls m caCert userCert userKey
  M.setTlsInsecure m True

  -- callbacks
  M.onMessage m print
  M.onLog m $ const putStrLn
  M.onConnect m print
  M.onDisconnect m print
  M.onSubscribe m $ curry print

  M.connect m server port keepAlive

  M.subscribe m 0 "rcv/#"

  forkIO $ forever $ do
    M.publish m False 0 "hello" "bla"
    threadDelay 5000000

  M.loopForever m
  M.destroyMosquitto m
  print "The end"

Hacking

Documentation for used C library can be found at https://mosquitto.org/api/files/mosquitto-h.html.