From 85c5fafda53f21697499ff0587ff6dc0f2b00f0a Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 16 三月 2023 09:34:20 +0800
Subject: [PATCH] 更新前后端分离部署文档
---
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 42 +++++++++++++++++++++++++++++++++++-------
1 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index db4d7b3..c93e449 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -22,6 +22,7 @@
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.dao.MediaServerMapper;
import com.genersoft.iot.vmp.utils.DateUtil;
+import com.genersoft.iot.vmp.utils.JsonUtil;
import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import okhttp3.OkHttpClient;
@@ -228,7 +229,10 @@
String onlineKey = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
for (Object mediaServerKey : mediaServerKeys) {
String key = (String) mediaServerKey;
- MediaServerItem mediaServerItem = (MediaServerItem) RedisUtil.get(key);
+ MediaServerItem mediaServerItem = JsonUtil.redisJsonToObject(key, MediaServerItem.class);
+ if (Objects.isNull(mediaServerItem)) {
+ continue;
+ }
// 妫�鏌ョ姸鎬�
Double aDouble = RedisUtil.zScore(onlineKey, mediaServerItem.getId());
if (aDouble != null) {
@@ -280,7 +284,7 @@
return null;
}
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerId;
- return (MediaServerItem)RedisUtil.get(key);
+ return JsonUtil.redisJsonToObject(key, MediaServerItem.class);
}
@Override
@@ -396,8 +400,10 @@
SsrcConfig ssrcConfig = new SsrcConfig(zlmServerConfig.getGeneralMediaServerId(), null, sipConfig.getDomain());
serverItem.setSsrcConfig(ssrcConfig);
}else {
- MediaServerItem mediaServerItemInRedis = (MediaServerItem)RedisUtil.get(key);
- serverItem.setSsrcConfig(mediaServerItemInRedis.getSsrcConfig());
+ MediaServerItem mediaServerItemInRedis = JsonUtil.redisJsonToObject(key, MediaServerItem.class);
+ if (Objects.nonNull(mediaServerItemInRedis)) {
+ serverItem.setSsrcConfig(mediaServerItemInRedis.getSsrcConfig());
+ }
}
RedisUtil.set(key, serverItem);
resetOnlineServerItem(serverItem);
@@ -487,7 +493,7 @@
* @return MediaServerItem
*/
@Override
- public MediaServerItem getMediaServerForMinimumLoad() {
+ public MediaServerItem getMediaServerForMinimumLoad(Boolean hasAssist) {
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
if (RedisUtil.zSize(key) == null || RedisUtil.zSize(key) == 0) {
@@ -500,9 +506,31 @@
// 鑾峰彇鍒嗘暟鏈�浣庣殑锛屽強骞跺彂鏈�浣庣殑
Set<Object> objects = RedisUtil.zRange(key, 0, -1);
ArrayList<Object> mediaServerObjectS = new ArrayList<>(objects);
+ MediaServerItem mediaServerItem = null;
+ if (hasAssist == null) {
+ String mediaServerId = (String)mediaServerObjectS.get(0);
+ mediaServerItem = getOne(mediaServerId);
+ }else if (hasAssist) {
+ for (Object mediaServerObject : mediaServerObjectS) {
+ String mediaServerId = (String)mediaServerObject;
+ MediaServerItem serverItem = getOne(mediaServerId);
+ if (serverItem.getRecordAssistPort() > 0) {
+ mediaServerItem = serverItem;
+ break;
+ }
+ }
+ }else if (!hasAssist) {
+ for (Object mediaServerObject : mediaServerObjectS) {
+ String mediaServerId = (String)mediaServerObject;
+ MediaServerItem serverItem = getOne(mediaServerId);
+ if (serverItem.getRecordAssistPort() == 0) {
+ mediaServerItem = serverItem;
+ break;
+ }
+ }
+ }
- String mediaServerId = (String)mediaServerObjectS.get(0);
- return getOne(mediaServerId);
+ return mediaServerItem;
}
/**
--
Gitblit v1.8.0