From 6b8ecd1f9d2abe1e6ac0af858487755a58a2643a Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 17 十一月 2022 18:09:28 +0800 Subject: [PATCH] 优化级联注册稳定性 --- src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 52 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java b/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java index f9e3ebf..f8d5869 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java @@ -1,11 +1,16 @@ package com.genersoft.iot.vmp.service; +import com.alibaba.fastjson2.JSONObject; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.media.zlm.dto.ServerKeepaliveData; +import com.genersoft.iot.vmp.service.bean.MediaServerLoad; import com.genersoft.iot.vmp.service.bean.SSRCInfo; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import java.util.List; +import java.util.Map; /** * 濯掍綋鏈嶅姟鑺傜偣 @@ -14,26 +19,43 @@ List<MediaServerItem> getAll(); + List<MediaServerItem> getAllFromDatabase(); + List<MediaServerItem> getAllOnline(); MediaServerItem getOne(String generalMediaServerId); - MediaServerItem getOneByHostAndPort(String host, int port); + void syncCatchFromDatabase(); /** * 鏂扮殑鑺傜偣鍔犲叆 * @param zlmServerConfig * @return */ - void handLeZLMServerConfig(ZLMServerConfig zlmServerConfig); + void zlmServerOnline(ZLMServerConfig zlmServerConfig); + + /** + * 鑺傜偣绂荤嚎 + * @param mediaServerId + * @return + */ + void zlmServerOffline(String mediaServerId); MediaServerItem getMediaServerForMinimumLoad(); - void setZLMConfig(MediaServerItem mediaServerItem); + void setZLMConfig(MediaServerItem mediaServerItem, boolean restart); - SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId); + void updateVmServer(List<MediaServerItem> mediaServerItemList); - void closeRTPServer(Device device, String channelId); + SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, boolean ssrcCheck, boolean isPlayback); + + SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String ssrc, boolean ssrcCheck, boolean isPlayback); + + SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String ssrc, boolean ssrcCheck, boolean isPlayback, Integer port); + + void closeRTPServer(MediaServerItem mediaServerItem, String streamId); + + void closeRTPServer(String mediaServerId, String streamId); void clearRTPServer(MediaServerItem mediaServerItem); @@ -43,11 +65,35 @@ void removeCount(String mediaServerId); - void releaseSsrc(MediaServerItem mediaServerItem, String ssrc); + void releaseSsrc(String mediaServerItemId, String ssrc); void clearMediaServerForOnline(); void add(MediaServerItem mediaSerItem); + int addToDatabase(MediaServerItem mediaSerItem); + + int updateToDatabase(MediaServerItem mediaSerItem); + void resetOnlineServerItem(MediaServerItem serverItem); + + MediaServerItem checkMediaServer(String ip, int port, String secret); + + boolean checkMediaRecordServer(String ip, int port); + + void delete(String id); + + void deleteDb(String id); + + MediaServerItem getDefaultMediaServer(); + + void updateMediaServerKeepalive(String mediaServerId, ServerKeepaliveData data); + + boolean checkRtpServer(MediaServerItem mediaServerItem, String rtp, String stream); + + /** + * 鑾峰彇璐熻浇淇℃伅 + * @return + */ + MediaServerLoad getLoad(MediaServerItem mediaServerItem); } -- Gitblit v1.8.0