| | |
| | | import org.springframework.core.annotation.Order; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.sql.Array; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | |
| | | String mediaServerId = streamSession.getMediaServerId(device.getDeviceId(), channelId); |
| | | MediaServerItem mediaServerItem = this.getOne(mediaServerId); |
| | | if (mediaServerItem != null) { |
| | | String streamId = String.format("gb_play_%s_%s", device.getDeviceId(), channelId); |
| | | String streamId = String.format("%s/%s", device.getDeviceId(), channelId); |
| | | zlmrtpServerFactory.closeRTPServer(mediaServerItem, streamId); |
| | | releaseSsrc(mediaServerItem, streamSession.getSSRC(device.getDeviceId(), channelId)); |
| | | } |
| | |
| | | result.add((MediaServerItem)redisUtil.get(key)); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<MediaServerItem> getAllFromDatabase() { |
| | | return mediaServerMapper.queryAll(); |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (mediaConfig.getRtspSSLPort() == 0) serverItemFromConfig.setRtspSSLPort(zlmServerConfig.getRtspSSlport()); |
| | | if (mediaConfig.getRtpProxyPort() == 0) serverItemFromConfig.setRtpProxyPort(zlmServerConfig.getRtpProxyPort()); |
| | | if (serverItem != null){ |
| | | // 可能是同一个zlm但id发生了变化 |
| | | if (!serverItem.getId().equals(zlmServerConfig.getGeneralMediaServerId())) { |
| | | mediaServerMapper.delOne(serverItem.getId()); |
| | | redisUtil.del(VideoManagerConstants.MEDIA_SERVER_PREFIX + serverItem.getId()); |
| | | |
| | | String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + serverItemFromConfig.getId(); |
| | | serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getSipDomain())); |
| | | redisUtil.set(key, serverItemFromConfig); |
| | | mediaServerMapper.add(serverItemFromConfig); |
| | | mediaServerMapper.delDefault(); |
| | | mediaServerMapper.add(serverItemFromConfig); |
| | | String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + serverItemFromConfig.getId(); |
| | | MediaServerItem serverItemInRedis = (MediaServerItem)redisUtil.get(key); |
| | | if (serverItemInRedis != null) { |
| | | serverItemFromConfig.setSsrcConfig(serverItemInRedis.getSsrcConfig()); |
| | | }else { |
| | | mediaServerMapper.update(serverItemFromConfig); |
| | | serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getSipDomain())); |
| | | } |
| | | redisUtil.set(key, serverItemFromConfig); |
| | | }else { |
| | | String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + serverItemFromConfig.getId(); |
| | | serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getSipDomain())); |
| | |
| | | resetOnlineServerItem(serverItemFromConfig); |
| | | setZLMConfig(serverItemFromConfig); |
| | | }else { |
| | | String now = this.format.format(new Date(System.currentTimeMillis())); |
| | | String now = this.format.format(System.currentTimeMillis()); |
| | | if (serverItem == null){ |
| | | // 一个新的zlm接入wvp |
| | | serverItem = new MediaServerItem(zlmServerConfig, sipConfig.getSipIp()); |
| | |
| | | |
| | | if (redisUtil.zSize(key) == null || redisUtil.zSize(key) == 0) { |
| | | logger.info("获取负载最低的节点时无在线节点"); |
| | | return null; |
| | | } |
| | | |
| | | // 获取分数最低的,及并发最低的 |
| | | Set<Object> objects = redisUtil.ZRange(key, 0, -1); |
| | | ArrayList<Object> MediaServerObjectS = new ArrayList<>(objects); |
| | | String mediaServerId = (String)MediaServerObjectS.get(0); |
| | | ArrayList<Object> mediaServerObjectS = new ArrayList<>(objects); |
| | | |
| | | String mediaServerId = (String)mediaServerObjectS.get(0); |
| | | return getOne(mediaServerId); |
| | | } |
| | | |
| | |
| | | param.put("hook.on_stream_none_reader",String.format("%s/on_stream_none_reader", hookPrex)); |
| | | param.put("hook.on_stream_not_found",String.format("%s/on_stream_not_found", hookPrex)); |
| | | param.put("hook.timeoutSec","20"); |
| | | param.put("general.streamNoneReaderDelayMS",mediaServerItem.getStreamNoneReaderDelayMS()); |
| | | param.put("general.streamNoneReaderDelayMS","-1".equals(mediaServerItem.getStreamNoneReaderDelayMS())?"3600000":mediaServerItem.getStreamNoneReaderDelayMS() ); |
| | | |
| | | JSONObject responseJSON = zlmresTfulUtils.setServerConfig(mediaServerItem, param); |
| | | |