lobby/daemon/message_handlers.go

30 lines
615 B
Go

package main
import (
"encoding/json"
"fmt"
"log"
"github.com/nats-io/nats.go"
)
// discoveryHandler accepts discovery message and
func discoveryHandler(m *nats.Msg) {
message := discoveryEnvelope{}
err := json.Unmarshal(m.Data, &message)
if err != nil {
log.Println(fmt.Errorf("decoding message error: %v", err))
}
err = message.Discovery.Validate()
if err != nil {
log.Println(fmt.Errorf("validation error: %v", err))
}
if message.Message == "hi" {
discoveryStorage.Add(message.Discovery)
} else if message.Message == "goodbye" {
discoveryStorage.Delete(message.Discovery.Hostname)
}
}