From 7546210ab975558db43c4d6e0f2a91de94bd2a66 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 26 十一月 2019 14:16:01 +0800
Subject: [PATCH] ---
---
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