| | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<MediaServerItem> getAllFromDatabase() { |
| | | return mediaServerMapper.queryAll(); |
| | | } |
| | | |
| | | @Override |
| | | public List<MediaServerItem> getAllOnline() { |
| | | String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX; |
| | |
| | | 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); |
| | | } |
| | | |