Commit dbe6ece653823a9487a04cbf69428119fd4011c4

Authored by 648540858
1 parent f7006e48

优化播放中zlm离线判断

src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java
@@ -283,10 +283,10 @@ public class ZLMRTPServerFactory { @@ -283,10 +283,10 @@ public class ZLMRTPServerFactory {
283 */ 283 */
284 public int totalReaderCount(MediaServerItem mediaServerItem, String app, String streamId) { 284 public int totalReaderCount(MediaServerItem mediaServerItem, String app, String streamId) {
285 JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(mediaServerItem, app, "rtmp", streamId); 285 JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(mediaServerItem, app, "rtmp", streamId);
286 - Integer code = mediaInfo.getInteger("code");  
287 if (mediaInfo == null) { 286 if (mediaInfo == null) {
288 return 0; 287 return 0;
289 } 288 }
  289 + Integer code = mediaInfo.getInteger("code");
290 if ( code < 0) { 290 if ( code < 0) {
291 logger.warn("查询流({}/{})是否有其它观看者时得到: {}", app, streamId, mediaInfo.getString("msg")); 291 logger.warn("查询流({}/{})是否有其它观看者时得到: {}", app, streamId, mediaInfo.getString("msg"));
292 return -1; 292 return -1;
src/main/java/com/genersoft/iot/vmp/media/zlm/event/ZLMKeepliveTimeoutListener.java
@@ -61,13 +61,12 @@ public class ZLMKeepliveTimeoutListener extends RedisKeyExpirationEventMessageLi @@ -61,13 +61,12 @@ public class ZLMKeepliveTimeoutListener extends RedisKeyExpirationEventMessageLi
61 // 发起http请求验证zlm是否确实无法连接,如果确实无法连接则发送离线事件,否则不作处理 61 // 发起http请求验证zlm是否确实无法连接,如果确实无法连接则发送离线事件,否则不作处理
62 MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId); 62 MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId);
63 JSONObject mediaServerConfig = zlmresTfulUtils.getMediaServerConfig(mediaServerItem); 63 JSONObject mediaServerConfig = zlmresTfulUtils.getMediaServerConfig(mediaServerItem);
64 - if (mediaServerConfig == null || mediaServerConfig.getInteger("code") == -2) {  
65 - publisher.zlmOfflineEventPublish(mediaServerId);  
66 - }else { 64 + if (mediaServerConfig != null && mediaServerConfig.getInteger("code") == 0) {
67 logger.info("[zlm心跳到期]:{}验证后zlm仍在线,恢复心跳信息", mediaServerId); 65 logger.info("[zlm心跳到期]:{}验证后zlm仍在线,恢复心跳信息", mediaServerId);
68 // 添加zlm信息 66 // 添加zlm信息
69 mediaServerService.updateMediaServerKeepalive(mediaServerId, mediaServerConfig); 67 mediaServerService.updateMediaServerKeepalive(mediaServerId, mediaServerConfig);
  68 + }else {
  69 + publisher.zlmOfflineEventPublish(mediaServerId);
70 } 70 }
71 -  
72 } 71 }
73 } 72 }