From 943f95ba8ce02f8088f2dfcfd83a60391a8a65a6 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 14 三月 2023 14:02:33 +0800 Subject: [PATCH] 增加消息通道配置,可以通道redis在wvp上下级之间发送消息 --- src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java | 11 +++ web_src/src/components/dialog/platformEdit.vue | 6 + src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java | 27 ++++++-- src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java | 11 +++ src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 2 sql/初始化.sql | 2 src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java | 10 ++- src/main/resources/all-application.yml | 4 src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java | 46 +++++++++++++-- src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java | 13 +++ web_src/index.html | 1 src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java | 12 ++++ src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java | 3 + src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 10 +++ web_src/src/components/dialog/deviceEdit.vue | 1 sql/2.6.6-2.6.7更新.sql | 6 ++ src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java | 9 +++ src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java | 2 18 files changed, 151 insertions(+), 25 deletions(-) diff --git "a/sql/2.6.6-2.6.7\346\233\264\346\226\260.sql" "b/sql/2.6.6-2.6.7\346\233\264\346\226\260.sql" new file mode 100755 index 0000000..df595a8 --- /dev/null +++ "b/sql/2.6.6-2.6.7\346\233\264\346\226\260.sql" @@ -0,0 +1,6 @@ +alter table device + add asMessageChannel int default 0; + +alter table parent_platform + add asMessageChannel int default 0; + diff --git "a/src/main/resources/db/migration/V2.6.7_20230201__\345\210\235\345\247\213\345\214\226.sql" "b/sql/\345\210\235\345\247\213\345\214\226.sql" similarity index 98% rename from "src/main/resources/db/migration/V2.6.7_20230201__\345\210\235\345\247\213\345\214\226.sql" rename to "sql/\345\210\235\345\247\213\345\214\226.sql" index 7a15f90..a8dfaff 100644 --- "a/src/main/resources/db/migration/V2.6.7_20230201__\345\210\235\345\247\213\345\214\226.sql" +++ "b/sql/\345\210\235\345\247\213\345\214\226.sql" @@ -47,6 +47,7 @@ `mobilePositionSubmissionInterval` int DEFAULT '5', `subscribeCycleForAlarm` int DEFAULT NULL, `ssrcCheck` int DEFAULT '0', + `asMessageChannel` int DEFAULT '0', `geoCoordSys` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `treeType` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `custom_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, @@ -329,6 +330,7 @@ `catalogId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `ptz` int DEFAULT NULL, `rtcp` int DEFAULT NULL, + `asMessageChannel` int DEFAULT '0', `status` bit(1) DEFAULT NULL, `startOfflinePush` int DEFAULT '0', `administrativeDivision` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, diff --git a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java index 1e7fd36..b413d88 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java @@ -48,6 +48,7 @@ private Boolean syncChannelOnDeviceOnline = Boolean.FALSE; private Boolean sipLog = Boolean.FALSE; + private Boolean sendToPlatformsWhenIdLost = Boolean.FALSE; private String serverId = "000000"; @@ -218,4 +219,12 @@ public void setSipLog(Boolean sipLog) { this.sipLog = sipLog; } + + public Boolean getSendToPlatformsWhenIdLost() { + return sendToPlatformsWhenIdLost; + } + + public void setSendToPlatformsWhenIdLost(Boolean sendToPlatformsWhenIdLost) { + this.sendToPlatformsWhenIdLost = sendToPlatformsWhenIdLost; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java index e454896..83b9c6a 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java @@ -188,6 +188,9 @@ @Schema(description = "SIP浜や簰IP锛堣澶囪闂钩鍙扮殑IP锛�") private String localIp; + @Schema(description = "鏄惁浣滀负娑堟伅閫氶亾") + private boolean asMessageChannel; + public String getDeviceId() { return deviceId; @@ -428,4 +431,12 @@ public void setKeepaliveIntervalTime(int keepaliveIntervalTime) { this.keepaliveIntervalTime = keepaliveIntervalTime; } + + public boolean isAsMessageChannel() { + return asMessageChannel; + } + + public void setAsMessageChannel(boolean asMessageChannel) { + this.asMessageChannel = asMessageChannel; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java index b056cc7..01a11eb 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java @@ -189,6 +189,9 @@ @Schema(description = "鏍戠被鍨� 鍥芥爣瑙勫畾浜嗕袱绉嶆爲鐨勫睍鐜版柟寮� 琛屾斂鍖哄垝 CivilCode 鍜屼笟鍔″垎缁�:BusinessGrou") private String treeType; + @Schema(description = "鏄惁浣滀负娑堟伅閫氶亾") + private boolean asMessageChannel; + public Integer getId() { return id; } @@ -428,4 +431,12 @@ public void setTreeType(String treeType) { this.treeType = treeType; } + + public boolean isAsMessageChannel() { + return asMessageChannel; + } + + public void setAsMessageChannel(boolean asMessageChannel) { + this.asMessageChannel = asMessageChannel; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java index 41aebf5..7ff5283 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java @@ -1,6 +1,8 @@ package com.genersoft.iot.vmp.gb28181.bean; +import io.swagger.v3.oas.annotations.media.Schema; + import java.time.Instant; import java.util.List; @@ -9,22 +11,29 @@ * @author: swwheihei * @date: 2020骞�5鏈�8鏃� 涓嬪崍2:05:56 */ +@Schema(description = "璁惧褰曞儚鏌ヨ缁撴灉淇℃伅") public class RecordInfo { + @Schema(description = "璁惧缂栧彿") private String deviceId; + @Schema(description = "閫氶亾缂栧彿") private String channelId; + @Schema(description = "鍛戒护搴忓垪鍙�") private String sn; + @Schema(description = "璁惧鍚嶇О") private String name; - + + @Schema(description = "鍒楄〃鎬绘暟") private int sumNum; private int count; private Instant lastTime; - + + @Schema(description = "") private List<RecordItem> recordList; public String getDeviceId() { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java index a47147a..07e559c 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java @@ -2,9 +2,9 @@ import com.genersoft.iot.vmp.utils.DateUtil; +import io.swagger.v3.oas.annotations.media.Schema; import org.jetbrains.annotations.NotNull; -import java.text.ParseException; import java.time.Instant; import java.time.temporal.TemporalAccessor; @@ -13,26 +13,37 @@ * @author: swwheihei * @date: 2020骞�5鏈�8鏃� 涓嬪崍2:06:54 */ +@Schema(description = "璁惧褰曞儚璇︽儏") public class RecordItem implements Comparable<RecordItem>{ + @Schema(description = "璁惧缂栧彿") private String deviceId; - + + @Schema(description = "鍚嶇О") private String name; - + + @Schema(description = "鏂囦欢璺緞鍚� (鍙��)") private String filePath; + @Schema(description = "褰曞儚鏂囦欢澶у皬,鍗曚綅:Byte(鍙��)") private String fileSize; + @Schema(description = "褰曞儚鍦板潃(鍙��)") private String address; - + + @Schema(description = "褰曞儚寮�濮嬫椂闂�(鍙��)") private String startTime; - + + @Schema(description = "褰曞儚缁撴潫鏃堕棿(鍙��)") private String endTime; - + + @Schema(description = "淇濆瘑灞炴��(蹇呴��)缂虹渷涓�0;0:涓嶆秹瀵�,1:娑夊瘑") private int secrecy; - + + @Schema(description = "褰曞儚浜х敓绫诲瀷(鍙��)time鎴朼larm 鎴� manua") private String type; - + + @Schema(description = "褰曞儚瑙﹀彂鑰匢D(鍙��)") private String recorderId; public String getDeviceId() { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index dabe1c8..740e837 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -1376,7 +1376,7 @@ if (device == null) { return; } - logger.info("[鍙戦�� 鎶ヨ閫氱煡] {}/{}->{},{}", device.getDeviceId(), deviceAlarm.getChannelId(), + logger.info("[鍙戦�佹姤璀﹂�氱煡]璁惧锛� {}/{}->{},{}", device.getDeviceId(), deviceAlarm.getChannelId(), deviceAlarm.getLongitude(), deviceAlarm.getLatitude()); String characterSet = device.getCharset(); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java index 6415241..b9d2c4c 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java @@ -402,7 +402,7 @@ if (parentPlatform == null) { return; } - logger.info("[鍙戦�佹姤璀﹂�氱煡] {}/{}->{},{}: {}", parentPlatform.getServerGBId(), deviceAlarm.getChannelId(), + logger.info("[鍙戦�佹姤璀﹂�氱煡]骞冲彴锛� {}/{}->{},{}: {}", parentPlatform.getServerGBId(), deviceAlarm.getChannelId(), deviceAlarm.getLongitude(), deviceAlarm.getLatitude(), JSON.toJSONString(deviceAlarm)); String characterSet = parentPlatform.getCharacterSet(); StringBuffer deviceStatusXml = new StringBuffer(600); diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java index 1cc754d..43528ec 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java +++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java @@ -1,6 +1,7 @@ package com.genersoft.iot.vmp.service.redisMsg; import com.alibaba.fastjson2.JSON; +import com.genersoft.iot.vmp.conf.UserSetting; import com.genersoft.iot.vmp.gb28181.bean.*; import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander; import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; @@ -44,8 +45,12 @@ @Autowired private ThreadPoolTaskExecutor taskExecutor; + @Autowired + private UserSetting userSetting; + @Override public void onMessage(@NotNull Message message, byte[] bytes) { + // 娑堟伅绀轰緥锛� PUBLISH alarm_receive '{ "gbId": "", "alarmSn": 1, "alarmType": "111", "alarmDescription": "222", }' logger.info("鏀跺埌鏉ヨ嚜REDIS鐨凙LARM閫氱煡锛� {}", new String(message.getBody())); boolean isEmpty = taskQueue.isEmpty(); taskQueue.offer(message); @@ -74,17 +79,44 @@ deviceAlarm.setLatitude(0); if (ObjectUtils.isEmpty(gbId)) { - // 鍙戦�佺粰鎵�鏈夌殑涓婄骇 - List<ParentPlatform> parentPlatforms = storage.queryEnableParentPlatformList(true); - if (parentPlatforms.size() > 0) { - for (ParentPlatform parentPlatform : parentPlatforms) { + if (userSetting.getSendToPlatformsWhenIdLost()) { + // 鍙戦�佺粰鎵�鏈夌殑涓婄骇 + List<ParentPlatform> parentPlatforms = storage.queryEnableParentPlatformList(true); + if (parentPlatforms.size() > 0) { + for (ParentPlatform parentPlatform : parentPlatforms) { + try { + commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm); + } catch (SipException | InvalidArgumentException | ParseException e) { + logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 鍙戦�佹姤璀�: {}", e.getMessage()); + } + } + } + }else { + // 鑾峰彇寮�鍚簡娑堟伅鎺ㄩ�佺殑璁惧鍜屽钩鍙� + List<ParentPlatform> parentPlatforms = storage.queryEnablePlatformListWithAsMessageChannel(); + if (parentPlatforms.size() > 0) { + for (ParentPlatform parentPlatform : parentPlatforms) { + try { + commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm); + } catch (SipException | InvalidArgumentException | ParseException e) { + logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 鍙戦�佹姤璀�: {}", e.getMessage()); + } + } + } + + } + // 鑾峰彇寮�鍚簡娑堟伅鎺ㄩ�佺殑璁惧鍜屽钩鍙� + List<Device> devices = storage.queryDeviceWithAsMessageChannel(); + if (devices.size() > 0) { + for (Device device : devices) { try { - commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm); - } catch (SipException | InvalidArgumentException | ParseException e) { - logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 鍙戦�佹姤璀�: {}", e.getMessage()); + commander.sendAlarmMessage(device, deviceAlarm); + } catch (InvalidArgumentException | SipException | ParseException e) { + logger.error("[鍛戒护鍙戦�佸け璐 鍙戦�佹姤璀�: {}", e.getMessage()); } } } + }else { Device device = storage.queryVideoDevice(gbId); ParentPlatform platform = storage.queryParentPlatByServerGBId(gbId); diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java index 5965678..b53c2d3 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java @@ -378,4 +378,7 @@ List<DeviceChannelExtend> queryChannelsByDeviceId(String serial, List<String> channelIds, Boolean online); + List<ParentPlatform> queryEnablePlatformListWithAsMessageChannel(); + + List<Device> queryDeviceWithAsMessageChannel(); } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java index 0aed820..8f158e2 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java @@ -39,6 +39,7 @@ "mobilePositionSubmissionInterval," + "subscribeCycleForAlarm," + "ssrcCheck," + + "asMessageChannel," + "geoCoordSys," + "treeType," + "online" + @@ -70,6 +71,7 @@ "mobilePositionSubmissionInterval," + "subscribeCycleForAlarm," + "ssrcCheck," + + "asMessageChannel," + "geoCoordSys," + "treeType," + "online" + @@ -98,6 +100,7 @@ "#{mobilePositionSubmissionInterval}," + "#{subscribeCycleForAlarm}," + "#{ssrcCheck}," + + "#{asMessageChannel}," + "#{geoCoordSys}," + "#{treeType}," + "#{online}" + @@ -152,6 +155,7 @@ "mobilePositionSubmissionInterval," + "subscribeCycleForAlarm," + "ssrcCheck," + + "asMessageChannel," + "geoCoordSys," + "treeType," + "online," + @@ -192,6 +196,7 @@ "mobilePositionSubmissionInterval," + "subscribeCycleForAlarm," + "ssrcCheck," + + "asMessageChannel," + "geoCoordSys," + "treeType," + "online " + @@ -222,6 +227,7 @@ "mobilePositionSubmissionInterval," + "subscribeCycleForAlarm," + "ssrcCheck," + + "asMessageChannel," + "geoCoordSys," + "treeType," + "online" + @@ -243,6 +249,7 @@ "<if test=\"mobilePositionSubmissionInterval != null\">, mobilePositionSubmissionInterval=#{mobilePositionSubmissionInterval}</if>" + "<if test=\"subscribeCycleForAlarm != null\">, subscribeCycleForAlarm=#{subscribeCycleForAlarm}</if>" + "<if test=\"ssrcCheck != null\">, ssrcCheck=#{ssrcCheck}</if>" + + "<if test=\"asMessageChannel != null\">, asMessageChannel=#{asMessageChannel}</if>" + "<if test=\"geoCoordSys != null\">, geoCoordSys=#{geoCoordSys}</if>" + "<if test=\"treeType != null\">, treeType=#{treeType}</if>" + "<if test=\"mediaServerId != null\">, mediaServerId=#{mediaServerId}</if>" + @@ -259,6 +266,7 @@ "updateTime," + "charset," + "ssrcCheck," + + "asMessageChannel," + "geoCoordSys," + "treeType," + "online" + @@ -271,6 +279,7 @@ "#{updateTime}," + "#{charset}," + "#{ssrcCheck}," + + "#{asMessageChannel}," + "#{geoCoordSys}," + "#{treeType}," + "#{online}" + @@ -282,4 +291,7 @@ @Select("select * from device") List<Device> getAll(); + + @Select("select * from device where asMessageChannel = 1") + List<Device> queryDeviceWithAsMessageChannel(); } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java index 52025eb..89ebd69 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java @@ -15,10 +15,10 @@ public interface ParentPlatformMapper { @Insert("INSERT INTO parent_platform (enable, name, serverGBId, serverGBDomain, serverIP, serverPort, deviceGBId, deviceIp, " + - " devicePort, username, password, expires, keepTimeout, transport, characterSet, ptz, rtcp, " + + " devicePort, username, password, expires, keepTimeout, transport, characterSet, ptz, rtcp, asMessageChannel, " + " status, startOfflinePush, catalogId, administrativeDivision, catalogGroup, createTime, updateTime, treeType) " + " VALUES (#{enable}, #{name}, #{serverGBId}, #{serverGBDomain}, #{serverIP}, #{serverPort}, #{deviceGBId}, #{deviceIp}, " + - " #{devicePort}, #{username}, #{password}, #{expires}, #{keepTimeout}, #{transport}, #{characterSet}, #{ptz}, #{rtcp}, " + + " #{devicePort}, #{username}, #{password}, #{expires}, #{keepTimeout}, #{transport}, #{characterSet}, #{ptz}, #{rtcp}, #{asMessageChannel}, " + " #{status}, #{startOfflinePush}, #{catalogId}, #{administrativeDivision}, #{catalogGroup}, #{createTime}, #{updateTime}, #{treeType})") int addParentPlatform(ParentPlatform parentPlatform); @@ -40,6 +40,7 @@ "characterSet=#{characterSet}, " + "ptz=#{ptz}, " + "rtcp=#{rtcp}, " + + "asMessageChannel=#{asMessageChannel}, " + "status=#{status}, " + "startOfflinePush=#{startOfflinePush}, " + "catalogGroup=#{catalogGroup}, " + @@ -68,9 +69,12 @@ "FROM parent_platform pp ") List<ParentPlatform> getParentPlatformList(); - @Select("SELECT * FROM parent_platform WHERE enable=#{enable}") + @Select("SELECT * FROM parent_platform WHERE enable=#{enable} ") List<ParentPlatform> getEnableParentPlatformList(boolean enable); + @Select("SELECT * FROM parent_platform WHERE enable=1 and asMessageChannel = 1") + List<ParentPlatform> queryEnablePlatformListWithAsMessageChannel(); + @Select("SELECT * FROM parent_platform WHERE serverGBId=#{platformGbId}") ParentPlatform getParentPlatByServerGBId(String platformGbId); diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java index 9475abc..3920fc7 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java @@ -525,6 +525,16 @@ } @Override + public List<ParentPlatform> queryEnablePlatformListWithAsMessageChannel() { + return platformMapper.queryEnablePlatformListWithAsMessageChannel(); + } + + @Override + public List<Device> queryDeviceWithAsMessageChannel() { + return deviceMapper.queryDeviceWithAsMessageChannel(); + } + + @Override public void outlineForAllParentPlatform() { platformMapper.outlineForAllParentPlatform(); } diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml index 3908019..89da5e0 100644 --- a/src/main/resources/all-application.yml +++ b/src/main/resources/all-application.yml @@ -199,8 +199,8 @@ sip-use-source-ip-as-remote-address: false # 鏄惁寮�鍚痵ip鏃ュ織 sip-log: true - # 鑷姩鏁版嵁搴撳崌绾э紝淇濊瘉琛ㄧ粨鏋勫畬鏁� - sync-db: true + # 娑堟伅閫氶亾鍔熻兘-缂哄皯鍥芥爣ID鏄惁缁欐墍鏈変笂绾у彂閫佹秷鎭� + send-to-platforms-when-id-lost: true # 鍏抽棴鍦ㄧ嚎鏂囨。锛堢敓浜х幆澧冨缓璁叧闂級 springdoc: diff --git a/web_src/index.html b/web_src/index.html index 778591e..bd66d39 100644 --- a/web_src/index.html +++ b/web_src/index.html @@ -15,5 +15,6 @@ <script type="text/javascript" src="./static/js/ZLMRTCClient.js"></script> <script type="text/javascript" src="./static/js/config.js"></script> <div id="app"></div> + </body> </html> diff --git a/web_src/src/components/dialog/deviceEdit.vue b/web_src/src/components/dialog/deviceEdit.vue index 8a5f9d1..7597c10 100644 --- a/web_src/src/components/dialog/deviceEdit.vue +++ b/web_src/src/components/dialog/deviceEdit.vue @@ -66,6 +66,7 @@ </el-form-item> <el-form-item label="鍏朵粬閫夐」"> <el-checkbox label="SSRC鏍¢獙" v-model="form.ssrcCheck" style="float: left"></el-checkbox> + <el-checkbox label="浣滀负娑堟伅閫氶亾" v-model="form.asMessageChannel" style="float: left"></el-checkbox> </el-form-item> <el-form-item> <div style="float: right;"> diff --git a/web_src/src/components/dialog/platformEdit.vue b/web_src/src/components/dialog/platformEdit.vue index 7638232..2844fcc 100644 --- a/web_src/src/components/dialog/platformEdit.vue +++ b/web_src/src/components/dialog/platformEdit.vue @@ -96,9 +96,10 @@ </el-form-item> <el-form-item label="鍏朵粬閫夐」"> <el-checkbox label="鍚敤" v-model="platform.enable" @change="checkExpires"></el-checkbox> - <el-checkbox label="浜戝彴鎺у埗" v-model="platform.ptz"></el-checkbox> +<!-- <el-checkbox label="浜戝彴鎺у埗" v-model="platform.ptz"></el-checkbox>--> <el-checkbox label="鎷夎捣绂荤嚎鎺ㄦ祦" v-model="platform.startOfflinePush"></el-checkbox> <el-checkbox label="RTCP淇濇椿" v-model="platform.rtcp" @change="rtcpCheckBoxChange"></el-checkbox> + <el-checkbox label="浣滀负娑堟伅閫氶亾" v-model="platform.asMessageChannel" ></el-checkbox> </el-form-item> <el-form-item> <el-button type="primary" @click="onSubmit">{{ @@ -145,6 +146,7 @@ enable: true, ptz: true, rtcp: false, + asMessageChannel: false, name: null, serverGBId: null, serverGBDomain: null, @@ -213,6 +215,7 @@ this.platform.enable = platform.enable; this.platform.ptz = platform.ptz; this.platform.rtcp = platform.rtcp; + this.platform.rtcpasMessageChannel = platform.asMessageChannel; this.platform.name = platform.name; this.platform.serverGBId = platform.serverGBId; this.platform.serverGBDomain = platform.serverGBDomain; @@ -290,6 +293,7 @@ enable: true, ptz: true, rtcp: false, + asMessageChannel: false, name: null, serverGBId: null, administrativeDivision: null, -- Gitblit v1.8.0