From d7ee5b3444e7681cfb4574681d54156e148c34da Mon Sep 17 00:00:00 2001
From: 龙赣华 <slongertian@gmail.com>
Date: 星期三, 05 六月 2019 11:47:24 +0800
Subject: [PATCH] by 192.168.1.124

---
 camera/camera.go |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/camera/camera.go b/camera/camera.go
index d4b3cce..1f501f1 100644
--- a/camera/camera.go
+++ b/camera/camera.go
@@ -37,6 +37,7 @@
 	}
 
 	go CreateCamera(Initchannel)
+	go AutoDelCamera(util.Cameraflag)
 
 	for _, cam := range util.CameraIds {
 		Initchannel <- cam.Id
@@ -57,6 +58,45 @@
 			go func(cid string, sock SocketContext) {
 				Recv(cid, sock)
 			}(id, socketlisten)
+		}
+	}
+}
+
+//鍔ㄦ�佸鐞�
+func AutoDelCamera(cameraflag chan bool) {
+
+	for _ = range cameraflag {
+		fmt.Println("test autodelcameraflag")
+		var oldcamera []string
+
+		SocketManage.Range(func(k, v interface{}) bool {
+			if str, ok := k.(string); ok {
+				oldcamera = append(oldcamera, str)
+			}
+			return true
+		})
+
+		var newcamera []string
+
+		for _, value := range util.CameraIds {
+			newcamera = append(newcamera, value.Id)
+		}
+
+		cameraChanDel := util.Difference(oldcamera, newcamera)
+		fmt.Println(cameraChanDel)
+
+		for key, op := range cameraChanDel {
+			if op == "add" {
+				Initchannel <- key
+			} else {
+				if sock, ok := SocketManage.Load(key); ok {
+					if socket, sok := sock.(SocketContext); sok {
+						socket.Cancel()
+						SocketManage.Delete(key)
+					}
+				}
+				fmt.Println("鍒犻櫎camera server : ", key)
+			}
 		}
 	}
 }
@@ -122,7 +162,7 @@
 	//  鏁版嵁鍔犲伐(鎵撴爣绛�)
 	sdkmsg := sdk.SdkData(cid, taskid, data)
 	if sdkmsg.Tasklab == nil {
-		fmt.Println("cid:%s 娌℃湁浠诲姟%s", cid, taskid)
+		fmt.Printf("cid:%s 娌℃湁浠诲姟%s\n", cid, taskid)
 		return
 	}
 

--
Gitblit v1.8.0