From 1a7d2c309893b38554fdee05c4b92d2618d66451 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期二, 26 十一月 2019 11:26:08 +0800 Subject: [PATCH] 给摄像机追踪推送规则数据并引入log4go --- ruleserver/server.go | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 0 deletions(-) diff --git a/ruleserver/server.go b/ruleserver/server.go new file mode 100644 index 0000000..2ba38db --- /dev/null +++ b/ruleserver/server.go @@ -0,0 +1,60 @@ +package ruleserver + +import ( + "basic.com/pubsub/protomsg.git" + "basic.com/valib/gopherdiscovery.git" + "github.com/gogo/protobuf/proto" + "basic.com/valib/logger.git" + "time" +) + +type PubSubServer struct { + +} + +const ( + Discovery_Server = "tcp://0.0.0.0:40009" + Discovery_UrlPubSub = "tcp://0.0.0.0:50009" +) + +//鍚姩discovery鐨剆erver +var discoveryServer *gopherdiscovery.DiscoveryServer +var videotapChan chan *protomsg.VideotapeInfo +func StartServer() { + var clients []string + var err error + var ( + defaultOpts = gopherdiscovery.Options{ + SurveyTime: 3 * time.Second, + //RecvDeadline: 3 * time.Second, + PollTime: 5 * time.Second, + } + ) + + discoveryServer, err = gopherdiscovery.Server(Discovery_Server, Discovery_UrlPubSub, defaultOpts) + + logger.Debug("server: ", discoveryServer) + logger.Debug("err:",err) + logger.Debug("clients: ",clients) + + videotapChan = make(chan *protomsg.VideotapeInfo) + + for { + select { + case dbMsg := <-videotapChan: + publishMessage(dbMsg) + } + } +} + +//骞挎挱鏁版嵁搴撴敼鍙樼殑msg +func publishMessage(msg *protomsg.VideotapeInfo) { + sendBytes,err := proto.Marshal(msg) + if err ==nil{ + discoveryServer.PublishMsg(string(sendBytes)) + } +} + +func AddLxMessage(msg *protomsg.VideotapeInfo) { + videotapChan <- msg +} \ No newline at end of file -- Gitblit v1.8.0