package main

import (
	"log"

	"github.com/runtimeco/go-coap"
)

func main() {

	req := coap.NewDgramMessage(coap.MessageParams{
		Type:      coap.NonConfirmable,
		Code:      coap.GET,
		MessageID: 12345,
	})

	req.AddOption(coap.Observe, 1)
	req.SetPathString("/some/path")

	c, err := coap.Dial("udp", "localhost:5683")
	if err != nil {
		log.Fatalf("Error dialing: %v", err)
	}

	rv, err := c.Send(req)
	if err != nil {
		log.Fatalf("Error sending request: %v", err)
	}

	for err == nil {
		if rv != nil {
			if err != nil {
				log.Fatalf("Error receiving: %v", err)
			}
			log.Printf("Got %s", rv.Payload)
		}
		rv, err = c.Receive()

	}
	log.Printf("Done...\n")

}
