Commit 01519c25746512ef10e9e2ef2d86ea7b60b9046e
1 parent
cf8e40c1
添加首次设置zlm时重启zlm以保证心跳正常。
Showing
3 changed files
with
20 additions
and
5 deletions
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java
| ... | ... | @@ -238,6 +238,10 @@ public class ZLMRESTfulUtils { |
| 238 | 238 | return sendPost(mediaServerItem, "stopSendRtp",param, null); |
| 239 | 239 | } |
| 240 | 240 | |
| 241 | + public JSONObject restartServer(MediaServerItem mediaServerItem) { | |
| 242 | + return sendPost(mediaServerItem, "restartServer",null, null); | |
| 243 | + } | |
| 244 | + | |
| 241 | 245 | public JSONObject addStreamProxy(MediaServerItem mediaServerItem, String app, String stream, String url, boolean enable_hls, boolean enable_mp4, String rtp_type) { |
| 242 | 246 | Map<String, Object> param = new HashMap<>(); |
| 243 | 247 | param.put("vhost", "__defaultVhost__"); | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java
| ... | ... | @@ -40,7 +40,7 @@ public interface IMediaServerService { |
| 40 | 40 | |
| 41 | 41 | MediaServerItem getMediaServerForMinimumLoad(); |
| 42 | 42 | |
| 43 | - void setZLMConfig(MediaServerItem mediaServerItem); | |
| 43 | + void setZLMConfig(MediaServerItem mediaServerItem, boolean restart); | |
| 44 | 44 | |
| 45 | 45 | SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId); |
| 46 | 46 | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
| ... | ... | @@ -373,7 +373,7 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR |
| 373 | 373 | redisUtil.set(key, serverItem); |
| 374 | 374 | resetOnlineServerItem(serverItem); |
| 375 | 375 | updateMediaServerKeepalive(serverItem.getId(), null); |
| 376 | - setZLMConfig(serverItem); | |
| 376 | + setZLMConfig(serverItem, "0".equals(zlmServerConfig.getHookEnable())); | |
| 377 | 377 | publisher.zlmOnlineEventPublish(serverItem.getId()); |
| 378 | 378 | |
| 379 | 379 | } |
| ... | ... | @@ -448,9 +448,10 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR |
| 448 | 448 | /** |
| 449 | 449 | * 对zlm服务器进行基础配置 |
| 450 | 450 | * @param mediaServerItem 服务ID |
| 451 | + * @param restart 是否重启zlm | |
| 451 | 452 | */ |
| 452 | 453 | @Override |
| 453 | - public void setZLMConfig(MediaServerItem mediaServerItem) { | |
| 454 | + public void setZLMConfig(MediaServerItem mediaServerItem, boolean restart) { | |
| 454 | 455 | logger.info("[ ZLM:{} ]-[ {}:{} ]设置zlm", |
| 455 | 456 | mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); |
| 456 | 457 | String protocol = sslEnabled ? "https" : "http"; |
| ... | ... | @@ -483,12 +484,22 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR |
| 483 | 484 | JSONObject responseJSON = zlmresTfulUtils.setServerConfig(mediaServerItem, param); |
| 484 | 485 | |
| 485 | 486 | if (responseJSON != null && responseJSON.getInteger("code") == 0) { |
| 486 | - logger.info("[ ZLM:{} ]-[ {}:{} ]设置zlm成功", | |
| 487 | - mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); | |
| 487 | + if (restart) { | |
| 488 | + logger.info("[ ZLM:{} ]-[ {}:{} ]设置zlm成功, 开始重启以保证配置生效", | |
| 489 | + mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); | |
| 490 | + zlmresTfulUtils.restartServer(mediaServerItem); | |
| 491 | + }else { | |
| 492 | + logger.info("[ ZLM:{} ]-[ {}:{} ]设置zlm成功", | |
| 493 | + mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); | |
| 494 | + } | |
| 495 | + | |
| 496 | + | |
| 488 | 497 | }else { |
| 489 | 498 | logger.info("[ ZLM:{} ]-[ {}:{} ]设置zlm失败", |
| 490 | 499 | mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); |
| 491 | 500 | } |
| 501 | + | |
| 502 | + | |
| 492 | 503 | } |
| 493 | 504 | |
| 494 | 505 | ... | ... |