| | |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.genersoft.iot.vmp.common.StreamInfo; |
| | | import com.genersoft.iot.vmp.common.SystemInfoDto; |
| | | import com.genersoft.iot.vmp.common.VideoManagerConstants; |
| | | import com.genersoft.iot.vmp.conf.UserSetup; |
| | | import com.genersoft.iot.vmp.gb28181.bean.*; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; |
| | | import com.genersoft.iot.vmp.service.bean.GPSMsgInfo; |
| | | import com.genersoft.iot.vmp.service.bean.ThirdPartyGB; |
| | | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| | |
| | | @Override |
| | | public void updatePlatformRegisterInfo(String callId, String platformGbId) { |
| | | String key = VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetup.getServerId() + "_" + callId; |
| | | redis.set(key, platformGbId); |
| | | redis.set(key, platformGbId, 30); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, StreamInfo streamInfo) { |
| | | public void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, MediaItem mediaItem) { |
| | | String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_" + type + "_" + app + "_" + streamId + "_" + mediaServerItem.getId(); |
| | | redis.set(key, streamInfo); |
| | | redis.set(key, mediaItem); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<StreamInfo> getStreams(String mediaServerId, String type) { |
| | | List<StreamInfo> result = new ArrayList<>(); |
| | | public List<MediaItem> getStreams(String mediaServerId, String type) { |
| | | List<MediaItem> result = new ArrayList<>(); |
| | | String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_" + type + "_*_*_" + mediaServerId; |
| | | List<Object> streams = redis.scan(key); |
| | | for (Object stream : streams) { |
| | | StreamInfo streamInfo = (StreamInfo)redis.get((String) stream); |
| | | result.add(streamInfo); |
| | | MediaItem mediaItem = (MediaItem)redis.get((String) stream); |
| | | result.add(mediaItem); |
| | | } |
| | | return result; |
| | | } |
| | |
| | | @Override |
| | | public void updateGpsMsgInfo(GPSMsgInfo gpsMsgInfo) { |
| | | String key = VideoManagerConstants.WVP_STREAM_GPS_MSG_PREFIX + userSetup.getServerId() + "_" + gpsMsgInfo.getId(); |
| | | redis.set(key, gpsMsgInfo); |
| | | redis.set(key, gpsMsgInfo, 60); // 默认GPS消息保存1分钟 |
| | | } |
| | | |
| | | @Override |
| | |
| | | public void delSubscribe(String key) { |
| | | redis.del(key); |
| | | } |
| | | |
| | | @Override |
| | | public List<GPSMsgInfo> getAllGpsMsgInfo() { |
| | | String scanKey = VideoManagerConstants.WVP_STREAM_GPS_MSG_PREFIX + userSetup.getServerId() + "_*"; |
| | | List<GPSMsgInfo> result = new ArrayList<>(); |
| | | List<Object> keys = redis.scan(scanKey); |
| | | for (int i = 0; i < keys.size(); i++) { |
| | | String key = (String) keys.get(i); |
| | | GPSMsgInfo gpsMsgInfo = (GPSMsgInfo) redis.get(key); |
| | | if (!gpsMsgInfo.isStored()) { // 只取没有存过得 |
| | | result.add((GPSMsgInfo)redis.get(key)); |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public MediaItem getStreamInfo(String app, String streamId, String mediaServerId) { |
| | | String scanKey = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_*_" + app + "_" + streamId + "_" + mediaServerId; |
| | | |
| | | MediaItem result = null; |
| | | List<Object> keys = redis.scan(scanKey); |
| | | if (keys.size() > 0) { |
| | | String key = (String) keys.get(0); |
| | | result = (MediaItem)redis.get(key); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public List<SubscribeInfo> getAllSubscribe() { |
| | | String scanKey = VideoManagerConstants.SIP_SUBSCRIBE_PREFIX + userSetup.getServerId() + "_Catalog_*"; |
| | | List<SubscribeInfo> result = new ArrayList<>(); |
| | | List<Object> keys = redis.scan(scanKey); |
| | | for (int i = 0; i < keys.size(); i++) { |
| | | String key = (String) keys.get(i); |
| | | SubscribeInfo subscribeInfo = (SubscribeInfo) redis.get(key); |
| | | result.add(subscribeInfo); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public List<String> getAllSubscribePlatform() { |
| | | String scanKey = VideoManagerConstants.SIP_SUBSCRIBE_PREFIX + userSetup.getServerId() + "_Catalog_*"; |
| | | List<String> result = new ArrayList<>(); |
| | | List<Object> keys = redis.scan(scanKey); |
| | | for (int i = 0; i < keys.size(); i++) { |
| | | String key = (String) keys.get(i); |
| | | String platformId = key.substring(scanKey.length() - 1); |
| | | result.add(platformId); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public void addCpuInfo(double cpuInfo) { |
| | | String key = VideoManagerConstants.SYSTEM_INFO_CPU_PREFIX + userSetup.getServerId(); |
| | | SystemInfoDto<Double> systemInfoDto = new SystemInfoDto<>(); |
| | | systemInfoDto.setTime(format.format(System.currentTimeMillis())); |
| | | systemInfoDto.setData(cpuInfo); |
| | | redis.lSet(key, systemInfoDto); |
| | | // 每秒一个,最多只存30个 |
| | | if (redis.lGetListSize(key) > 30) { |
| | | for (int i = 0; i < redis.lGetListSize(key) - 30; i++) { |
| | | redis.lLeftPop(key); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void addMemInfo(double memInfo) { |
| | | String key = VideoManagerConstants.SYSTEM_INFO_MEM_PREFIX + userSetup.getServerId(); |
| | | SystemInfoDto<Double> systemInfoDto = new SystemInfoDto<>(); |
| | | systemInfoDto.setTime(format.format(System.currentTimeMillis())); |
| | | systemInfoDto.setData(memInfo); |
| | | redis.lSet(key, systemInfoDto); |
| | | // 每秒一个,最多只存30个 |
| | | if (redis.lGetListSize(key) > 30) { |
| | | for (int i = 0; i < redis.lGetListSize(key) - 30; i++) { |
| | | redis.lLeftPop(key); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void addNetInfo(Map<String, String> networkInterfaces) { |
| | | String key = VideoManagerConstants.SYSTEM_INFO_NET_PREFIX + userSetup.getServerId(); |
| | | SystemInfoDto<Map<String, String>> systemInfoDto = new SystemInfoDto<>(); |
| | | systemInfoDto.setTime(format.format(System.currentTimeMillis())); |
| | | systemInfoDto.setData(networkInterfaces); |
| | | redis.lSet(key, systemInfoDto); |
| | | // 每秒一个,最多只存30个 |
| | | if (redis.lGetListSize(key) > 30) { |
| | | for (int i = 0; i < redis.lGetListSize(key) - 30; i++) { |
| | | redis.lLeftPop(key); |
| | | } |
| | | } |
| | | } |
| | | } |