def handleIPCState(head, body, client): head = list(head) from VideoServer import videoService from SmartServer import SmartServer from handlers import getUniqueID server_name = body["server_name"] if body["status_code"] == 1: member = [] for item in body["member"]: ipc_state = videoService().getVideoIPCState(server_name, item["ipc_name"]) item["ipc_state"] = ipc_state member.append(item) body["status_code"] = 2 encodedjson = json.dumps(body) head[3] = len(encodedjson) data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson) client.SendData(data) elif body["status_code"] == 2: print body elif body["status_code"] == 255: member = [] for item in body["member"]: videoService().setVideoIPCState(server_name, item["ipc_name"], item["ipc_state"]) member.append(item) encodedjson = json.dumps(body) head[3] = len(encodedjson) data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson) for client1 in SmartServer().client_map.values(): if client1.addr[0] not in videoService().videoservers_map: client1.SendData(data)
def Init(self, Host, Port, handleConnect, channel_map = None): self._handleConnect = handleConnect self.Server = AsyncServer(Host, Port, self._handleConnect) if channel_map is not None : self.__class__.channel_map = channel_map from VideoServer import videoService videoService().Init(u"西山游泳馆")
def handleVideoServiceState(head, body, client): head = list(head) from VideoServer import videoService from SmartServer import SmartServer from handlers import getUniqueID if body['status_code'] == 1: member = [] for item in body['member']: flag = videoService().getVideoServerStartFlag(item['server_name']) item['service_state'] = flag member.append(item) body['status_code'] = 2 encodedjson = json.dumps(body) head[3] = len(encodedjson) data = struct.pack('!4i{}s'.format(head[3]),head[0],head[1],head[2],head[3],encodedjson) client.SendData(data) print "handleVideoServiceState: ", body elif body['status_code'] == 2: print body elif body['status_code'] == 255: item = body['member'][0] videoService().setVideoServerStartFlag(item['server_name'], item['service_state']) encodedjson = json.dumps(body) head[3] = len(encodedjson) data = struct.pack('!4i{}s'.format(head[3]),head[0],getUniqueID(),head[2],head[3],encodedjson) for client1 in SmartServer().client_map.values(): if client1.addr[0] not in videoService().videoservers_map: client1.SendData(data)
def handleVideoRecords(head, body, client): head = list(head) from VideoServer import videoService from SmartServer import SmartServer from handlers import getUniqueID import copy body2 = None if body["status_code"] == 1: member = [] server_name = None for item in body["member"]: server_name = item["server_name"] videoserver = videoService().getVideoServer(server_name) item["savedays"] = videoserver.GetRecordSaveDays() member.append(item) body["member"] = member body["local_name"] = videoService().local_name body["status_code"] = 2 elif body["status_code"] == 3: if 1 == len(body["member"]): item = body["member"][0] if videoService().updateVideoSeverRecordDays(item["server_name"], item["savedays"]): body["status_code"] = 4 body2 = copy.deepcopy(body) body2["status_code"] = 256 # 更改数据库 else: body["status_code"] = 5 else: body["status_code"] = 5 print "handleVideoRecords : ", body encodedjson = json.dumps(body) head[3] = len(encodedjson) data = struct.pack("!4i{}s".format(head[3]), head[0], head[1], head[2], head[3], encodedjson) client.SendData(data) if body2 is not None: encodedjson = json.dumps(body2) head[3] = len(encodedjson) data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson) for client1 in SmartServer().client_map.values(): if client1.addr[0] not in videoService().videoservers_map: if cmp(client1.addr[0], client.addr[0]) != 0: client1.SendData(data)
def handleClientClosed(ip): from VideoServer import videoService if videoService().setVideoServerState(ip, 0): server_name = videoService().getVideoServerName(ip) item = {} item['server_name'] = server_name item['server_ip'] = ip item['server_state'] = 0 body = {} body['member'] = [item,] body['local_name'] = videoService().local_name body['mac'] = 'mac' body['user_name'] = 'user_name' body['password'] = '******' body['status_code'] = 255 encodedjson = json.dumps(body) data = struct.pack('!4i{}s'.format(len(encodedjson)), 1, getUniqueID(), 101, len(encodedjson), encodedjson) from SmartServer import SmartServer for client in SmartServer().client_map.values(): if client.addr[0] not in videoService().videoservers_map: client.SendData(data)
def handleClientClosed(ip): from VideoServer import videoService if videoService().setVideoServerState(ip, 0): server_name = videoService().getVideoServerName(ip) item = {} item["server_name"] = server_name item["server_ip"] = ip item["server_state"] = 0 item["disk_space"] = videoService().getVideoServerDiskSpace(ip) body = {} body["member"] = [item] body["local_name"] = videoService().local_name body["mac"] = "mac" body["user_name"] = "user_name" body["password"] = "******" body["status_code"] = 255 encodedjson = json.dumps(body) data = struct.pack("!4i{}s".format(len(encodedjson)), 1, getUniqueID(), 101, len(encodedjson), encodedjson) from SmartServer import SmartServer for client in SmartServer().client_map.values(): if client.addr[0] not in videoService().videoservers_map: client.SendData(data)
def handleStartorStopService(head, body, client): head = list(head) if body['status_code'] == 1: server_name = body['server_name'] from VideoServer import videoService from SmartServer import SmartServer from handlers import getUniqueID encodedjson = json.dumps(body) head[3] = len(encodedjson) data = struct.pack('!4i{}s'.format(head[3]),head[0],getUniqueID(),head[2],head[3],encodedjson) videoserver = videoService().getVideoServer(server_name) if videoserver is not None: for client1 in SmartServer().client_map.values(): if cmp(client1.addr[0],videoserver.getIp()) == 0: client1.SendData(data) # client.SendData(data) body['status_code'] = 2 encodedjson = json.dumps(body) head[3] = len(encodedjson) data = struct.pack('!4i{}s'.format(head[3]),head[0],head[1],head[2],head[3],encodedjson) client.SendData(data) elif body['status_code'] == 2: print body
def handleVideoIPCS(head, body, client): head = list(head) from VideoServer import videoService from SmartServer import SmartServer from handlers import getUniqueID import copy body1 = None if body["status_code"] == 1: member = [] videoserver = videoService().getVideoServer(body["server_name"]) if videoserver is not None: for name, ipc in videoserver.getIPCs().items(): item = ipc.GetIPCProperties() item["name"] = name member.append(item) if len(member) == 0: member = None body["member"] = member body["status_code"] = 2 elif body["status_code"] == 3: videoserver = videoService().getVideoServer(body["server_name"]) if videoserver is not None: if 1 == len(body["member"]): item = body["member"][0] from VideoServer import VideoIPC ipc = VideoIPC(item["ip"], item["url"], item["fps"], item["resolution"], item["streamsize"]) if videoService().addVideoIPC(videoserver.getIp(), item["name"], ipc): body["status_code"] = 4 body1 = copy.deepcopy(body) body1["status_code"] = 256 # 向数据库中添加 else: ipc = videoserver.getIPCs()[item["name"]] if ipc and ipc.getProperty("ip") == item["ip"]: videoService().updateIPCProperty(videoserver.getIp(), item["name"], "url", item["url"]) videoService().updateIPCProperty(videoserver.getIp(), item["name"], "fps", item["fps"]) videoService().updateIPCProperty( videoserver.getIp(), item["name"], "resolution", item["resolution"] ) videoService().updateIPCProperty( videoserver.getIp(), item["name"], "streamsize", item["streamsize"] ) body["status_code"] = 4 body1 = copy.deepcopy(body) body1["status_code"] = 256 # 更改数据库 else: body["status_code"] = 5 else: body["status_code"] = 5 else: body["status_code"] = 5 elif body["status_code"] == 6: videoserver = videoService().getVideoServer(body["server_name"]) if videoserver is not None: if 1 == len(body["member"]): item = body["member"][0] if videoService().delVideoIPC(videoserver.getIp(), item["name"]): body["status_code"] = 7 body1 = copy.deepcopy(body) body1["status_code"] = 257 # 从数据库中删除 else: body["status_code"] = 8 else: body["status_code"] = 8 else: body["status_code"] = 8 print "handleVideoIPCS : ", body encodedjson = json.dumps(body) print encodedjson head[3] = len(encodedjson) data = struct.pack("!4i{}s".format(head[3]), head[0], head[1], head[2], head[3], encodedjson) client.SendData(data) if body1 is not None: encodedjson = json.dumps(body1) head[3] = len(encodedjson) data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson) for client1 in SmartServer().client_map.values(): if client1.addr[0] not in videoService().videoservers_map: if client1.addr[0] != client.addr[0]: client1.SendData(data)
def handleVideoServers(head, body, client): from VideoServer import videoService from SmartServer import SmartServer from handlers import getUniqueID import copy head = list(head) body1 = None if body["status_code"] == 1: if body["member"]: print "member is not None :", body for item in body["member"]: if item["server_ip"] is not None: if videoService().addVideoServer(item["server_ip"], item["disk_space"], 1): body["status_code"] = 255 encodedjson1 = json.dumps(body) dataUpload = struct.pack( "!4i{}s".format(len(encodedjson1)), 1, getUniqueID(), head[2], len(encodedjson1), encodedjson1, ) for client1 in SmartServer().client_map.values(): if client1.addr[0] not in videoService().videoservers_map: client1.SendData(dataUpload) else: server_name = videoService().getVideoServerName(item["server_ip"]) if server_name: item["server_name"] = server_name body["member"] = [item] # 添加IP核对 if videoService().updateVideoServerDiskSpace(item["server_ip"], item["disk_space"]): m = 1 # 更新数据库 if videoService().getVideoServerState(item["server_ip"]) == 0: videoService().setVideoServerState(item["server_ip"], 1) item1 = {} item1["server_name"] = server_name item1["server_ip"] = item["server_ip"] item1["server_state"] = 1 item1["disk_space"] = videoService().getVideoServerDiskSpace(item["server_ip"]) body1 = {} body1["member"] = [item1] body1["local_name"] = videoService().local_name body1["mac"] = "mac" body1["user_name"] = "user_name" body1["password"] = "******" body1["status_code"] = 255 encodedjson1 = json.dumps(body1) dataUpload = struct.pack( "!4i{}s".format(len(encodedjson1)), 1, getUniqueID(), 101, len(encodedjson1), encodedjson1, ) for client1 in SmartServer().client_map.values(): if client1.addr[0] not in videoService().videoservers_map: client1.SendData(dataUpload) body1 = None else: print "member is None :", body member = [] for server_ip, videoserver in videoService().videoservers_map.items(): item = {} item["server_ip"] = server_ip item["server_name"] = videoserver.getName() item["server_state"] = videoserver.State() item["disk_space"] = videoserver.getDiskSpace() member.append(item) body["member"] = member # print "handleVideoServers :", member if len(member) == 0: body["member"] = None body["status_code"] = 2 body["local_name"] = videoService().local_name elif body["status_code"] == 3: if 1 == len(body["member"]): item = body["member"][0] if videoService().updateVideoServerName(item["server_ip"], item["server_name"]): body["status_code"] = 4 body1 = copy.deepcopy(body) body1["status_code"] = 256 # 向数据库中添加或修改 else: body["status_code"] = 5 else: body["status_code"] = 5 body["local_name"] = videoService().local_name elif body["status_code"] == 6: if 1 == len(body["member"]): item = body["member"][0] if videoService().delVideoServer(item["server_name"]): body["status_code"] = 7 body1 = copy.deepcopy(body) body1["status_code"] = 257 # 从数据库中删除 else: body["status_code"] = 8 else: body["status_code"] = 8 print "handleVideoServers : ", body encodedjson = json.dumps(body) head[3] = len(encodedjson) data = struct.pack("!4i{}s".format(head[3]), head[0], head[1], head[2], head[3], encodedjson) client.SendData(data) if body1 is not None: encodedjson = json.dumps(body1) head[3] = len(encodedjson) data = struct.pack("!4i{}s".format(head[3]), head[0], getUniqueID(), head[2], head[3], encodedjson) for client1 in SmartServer().client_map.values(): if client1.addr[0] not in videoService().videoservers_map: print client1.addr if cmp(client1.addr[0], client.addr[0]) != 0: client1.SendData(data)