packages feed

hcoap-0.1.2.0: README.md

Hcoap is a haskell CoAP library. See http://coap.technology/ for more information about the CoAP
protocol. The library aims to support RFC 7252 specification, and currently only support non-secure
CoAP transport.

The library is split into a high-level API in Network.CoAP.Server and Network.CoAP.Client, and a lower layer API in Network.CoAP.Message for working directly with CoAP messages.

[![Build Status](https://travis-ci.org/lulf/hcoap.svg?branch=master)](https://travis-ci.org/lulf/hcoap)

## Example server
    main =
      withSocketsDo $ do
        sock <- socket AF_INET6 Datagram defaultProtocol
        bindSocket sock (SockAddrInet6 5683 0 iN6ADDR_ANY 0)
        server <- createServer (createUDPTransport sock) (\(request, _) -> do
          let payload = Just (B.pack "{\"value\":\"foo\"}")
          return (Response Content [ContentFormat ApplicationJson] payload))
        runServer server

## Example client
    main = do
      let request = Request { requestMethod = GET
                            , requestOptions = []
                            , requestPayload = Nothing
                            , requestReliable = True }
    withSocketsDo $ do
      sock <- socket AF_INET6 Datagram defaultProtocol
      bindSocket sock (SockAddrInet6 0 0 iN6ADDR_ANY 0)
      let transport = createUDPTransport sock
      client <- createClient transport
      uri <- parseURI "coap://[::1]:5683/hello"
      response <- doRequest client uri request
      putStrLn ("Got response: " ++ show response)
      return ()