| | |
| | | import com.genersoft.iot.vmp.conf.UserSetup; |
| | | import com.genersoft.iot.vmp.gb28181.bean.*; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| | | import com.genersoft.iot.vmp.service.bean.ThirdPartyGB; |
| | | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| | | import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; |
| | | import com.genersoft.iot.vmp.utils.redis.RedisUtil; |
| | |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | |
| | | private UserSetup userSetup; |
| | | |
| | | private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | @Override |
| | | public Long getCSEQ(String method) { |
| | | String key = VideoManagerConstants.SIP_CSEQ_PREFIX + userSetup.getServerId() + "_" + method; |
| | | |
| | | long result = redis.incr(key, 1L); |
| | | if (result > Integer.MAX_VALUE) { |
| | | redis.set(key, 1); |
| | | result = 1; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public void resetAllCSEQ() { |
| | | String scanKey = VideoManagerConstants.SIP_CSEQ_PREFIX + userSetup.getServerId() + "_*"; |
| | | List<Object> keys = redis.scan(scanKey); |
| | | for (int i = 0; i < keys.size(); i++) { |
| | | String key = (String) keys.get(i); |
| | | redis.set(key, 1); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 开始播放时将流存入redis |
| | |
| | | |
| | | @Override |
| | | public void sendStreamChangeMsg(String type, JSONObject jsonObject) { |
| | | String key = VideoManagerConstants.WVP_MSG_STREAM_CHANGE__PREFIX + type; |
| | | String key = VideoManagerConstants.WVP_MSG_STREAM_CHANGE_PREFIX + type; |
| | | logger.debug("[redis 流变化事件] {}: {}", key, jsonObject.toString()); |
| | | redis.convertAndSend(key, jsonObject); |
| | | } |
| | | |
| | | @Override |
| | | public void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, StreamInfo streamInfo) { |
| | | String key = VideoManagerConstants.WVP_SERVER_STREAM_PUSH_PREFIX + userSetup.getServerId() + "_" + type + "_" + app + "_" + streamId + "_" + mediaServerItem.getId(); |
| | | String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_" + type + "_" + app + "_" + streamId + "_" + mediaServerItem.getId(); |
| | | redis.set(key, streamInfo); |
| | | } |
| | | |
| | | @Override |
| | | public void removeStream(MediaServerItem mediaServerItem, String type, String app, String streamId) { |
| | | String key = VideoManagerConstants.WVP_SERVER_STREAM_PUSH_PREFIX + userSetup.getServerId() + "_*_" + app + "_" + streamId + "_" + mediaServerItem.getId(); |
| | | List<Object> streams = redis.scan(key); |
| | | for (Object stream : streams) { |
| | | redis.del((String) stream); |
| | | } |
| | | public void removeStream(String mediaServerId, String type, String app, String streamId) { |
| | | String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_" + type + "_" + app + "_" + streamId + "_" + mediaServerId; |
| | | redis.del(key); |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (playLeys == null || playLeys.size() == 0) return null; |
| | | return (StreamInfo)redis.get(playLeys.get(0).toString()); |
| | | } |
| | | |
| | | @Override |
| | | public ThirdPartyGB queryMemberNoGBId(String queryKey) { |
| | | String key = VideoManagerConstants.WVP_STREAM_GB_ID_PREFIX + queryKey; |
| | | JSONObject jsonObject = (JSONObject)redis.get(key); |
| | | return JSONObject.toJavaObject(jsonObject, ThirdPartyGB.class); |
| | | } |
| | | |
| | | @Override |
| | | public void removeStream(String mediaServerId, String type) { |
| | | String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_" + type + "_*_*_" + mediaServerId; |
| | | List<Object> streams = redis.scan(key); |
| | | for (Object stream : streams) { |
| | | redis.del((String) stream); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<StreamInfo> getStreams(String mediaServerId, String type) { |
| | | List<StreamInfo> 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); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public void updateDevice(Device device) { |
| | | String key = VideoManagerConstants.DEVICE_PREFIX + userSetup.getServerId() + "_" + device.getDeviceId(); |
| | | redis.set(key, device); |
| | | } |
| | | |
| | | @Override |
| | | public Device getDevice(String deviceId) { |
| | | String key = VideoManagerConstants.DEVICE_PREFIX + userSetup.getServerId() + "_" + deviceId; |
| | | return (Device)redis.get(key); |
| | | } |
| | | } |