X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fr3-eventbroker_zmq%2Fmain.go;h=3145c6cd700ae8eebdd44b22767c774bcd3c1432;hb=39b62b90f21c12aac821b80b40ee162390ccbbc1;hp=dfdaff5079ce85679773e10c48b6c40b432716f2;hpb=7cba7e404c585bb0dd536e718622578514f474ae;p=svn42.git diff --git a/go/r3-eventbroker_zmq/main.go b/go/r3-eventbroker_zmq/main.go index dfdaff5..3145c6c 100644 --- a/go/r3-eventbroker_zmq/main.go +++ b/go/r3-eventbroker_zmq/main.go @@ -9,6 +9,7 @@ import ( "time" "log/syslog" "log" + pubsub "github.com/tuxychandru/pubsub" ) //~ func StringArrayToByteArray(ss []string) [][]byte { @@ -59,6 +60,29 @@ func main() { Syslog_.Print("started") defer Syslog_.Print("exiting") } + + ps := pubsub.New(3) + ticker := time.NewTicker(time.Duration(5) * time.Minute) + publish_these_events_chan := ps.Sub("door", "doorcmd", "presence", "sensors", "buttons", "movement") + + + for { + select { + case subin := <- sub_in_chans.In(): + ParseSocketInputLine(subin, ps, keylookup_socket) + case <- ticker.C: + MakeTimeTick(ps) + case event_interface := <- publish_these_events_chan: + data, err := FormatEventForSocket(event_interface) + if err != nil { + Syslog_.Print(err) + continue + } + if err := pub_out_socket.Send(data); err != nil { + panic(err) + } + } + } //~ nick, err := keylookup_socket.LookupCardIdNick(keyhexid)