package util import ( "fmt" "basic.com/pubsub/protomsg.git" "basic.com/r/dbapi.git" "github.com/gogo/protobuf/proto" "github.com/long/test/gopherdiscovery" ) /************************* * 1. store all struct data * 2. define function for get difference data type * 3. recive data from sqlite process. and call conpos function. ***********************/ var camval dbapi.CameraApi var taskapi dbapi.TaskApi var sdkapi dbapi.SdkApi var IsInit bool var CameraIds []protomsg.Camera var CameraTasks []protomsg.CameraAndTaskInfo var TaskSdks []protomsg.TaskSdkInfo var Sdklist []string //var urlServer = "tcp://192.168.1.11:40007" //var urlPubSub = "tcp://192.168.1.11:50007" var urlServer = "tcp://127.0.0.1:40007" var urlPubSub = "tcp://127.0.0.1:50007" var Sdkflag = make(chan bool) var TaskSdkflag = make(chan bool) var Cameraflag = make(chan bool) var newsdkmsg = &protomsg.DbChangeMessage{} func processinit(initchan chan bool) { CameraIds = camval.FindAll() fmt.Println("==============camera camera with task ================") CameraTasks = camval.FindAllCameraAndTask() fmt.Println(CameraTasks) TaskSdks = taskapi.FindAll() Sdklist = sdkapi.GetAllSdkIds() initchan <- true } func Getdata(opt []byte) { if err := proto.Unmarshal(opt, newsdkmsg); err != nil { fmt.Println("publichshMessage ", err) return } switch newsdkmsg.Table { case protomsg.TableChanged_T_Camera: fmt.Println("update camera") CameraIds = camval.FindAll() Cameraflag <- true case protomsg.TableChanged_T_CameraTask: fmt.Println("update cameratask") CameraTasks = camval.FindAllCameraAndTask() fmt.Println("update cameratask finished!") case protomsg.TableChanged_T_TaskSdk: fmt.Println("update tasksdk") TaskSdks = taskapi.FindAll() TaskSdkflag <- true case protomsg.TableChanged_T_Sdk: fmt.Println("update sdk") Sdklist = sdkapi.GetAllSdkIds() go func() { Sdkflag <- true }() fmt.Println("update finished!") default: fmt.Println("unknow type operation") } fmt.Println(newsdkmsg) } func Init(initchan chan bool) { clientOne, _ := gopherdiscovery.ClientWithSub(urlServer, urlPubSub, "ip:192.168.1.124") recvinit := clientOne.HeartBeatMsg() fmt.Println(<-recvinit) processinit(initchan) peers, _ := clientOne.Peers() for x := range peers { fmt.Println("client: ", string(x)) Getdata(x) } }