access.go 726 B

12345678910111213141516171819202122232425262728293031323334
  1. package main
  2. import (
  3. "net"
  4. "sparrow/pkg/coap"
  5. "sparrow/pkg/server"
  6. )
  7. type Access struct {
  8. CoAPBroker *coap.Broker
  9. }
  10. func NewAccess() (*Access, error) {
  11. broker := coap.NewBroker()
  12. broker.Handle("/topic/s", broker.Mgr.FuncHandler(HandlerDeviceStatus))
  13. return &Access{
  14. CoAPBroker: broker,
  15. }, nil
  16. }
  17. func HandlerDeviceStatus(l *net.UDPConn, a *net.UDPAddr, m coap.Message) coap.Message {
  18. server.Log.Debugf("Got message in handleA: path=%q: %#v from %v", m.GetMessageID(), m, a)
  19. if m.IsConfirmable() {
  20. res := &coap.BaseMessage{
  21. Type: coap.ACK,
  22. Code: coap.Content,
  23. MessageID: m.GetMessageID(),
  24. Token: m.GetToken(),
  25. Payload: []byte("hello to you!"),
  26. }
  27. return res
  28. }
  29. return nil
  30. }