From d53faee01d1f52da45483b845e58ea08e32f4ed1 Mon Sep 17 00:00:00 2001
From: liyong <liyong@3mang.com>
Date: Thu, 24 Aug 2017 09:19:31 +0800
Subject: [PATCH] 1.修改监课推流获取频道的规则,先查找空闲的频道

---
 src/EngineEntrance.js   |  2 +-
 src/apes/MediaModule.js | 17 +++++++++++++----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/EngineEntrance.js b/src/EngineEntrance.js
index eec5d14..cf8d1bb 100644
--- a/src/EngineEntrance.js
+++ b/src/EngineEntrance.js
@@ -58,7 +58,7 @@ export default class MessageEntrance extends Emiter {
   constructor() {
     super();
     //sdk 信息
-    GlobalConfig.sdkVersion = "v1.79.6.20170822";
+    GlobalConfig.sdkVersion = "v1.80.1.20170823";
     loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
 
     //设置
diff --git a/src/apes/MediaModule.js b/src/apes/MediaModule.js
index 518772f..c3c6def 100644
--- a/src/apes/MediaModule.js
+++ b/src/apes/MediaModule.js
@@ -141,14 +141,23 @@ class MediaModule {
   //监课获取推流地址
   getMediaPublishPathForInVisible(_param) {
     let mediaLen = Object.keys(MediaModule.allMediaChannelsList).length;
-    let freeChannel = (this.MEDIA_OBJ_TABLE_ID - 20 - mediaLen) || GlobalConfig.nodeId;
+    let freeChannel =0;
+
+    //先从现有的空闲列表中获取频道号
+    for(let i in MediaModule.allMediaChannelsList){
+      let channelItem=MediaModule.allMediaChannelsList[i];
+      if(channelItem&&channelItem.status==ApeConsts.CHANNEL_STATUS_RELEASED&&channelItem.userRole==ApeConsts.invisible){
+        freeChannel=channelItem.channelId;
+        break;
+      }
+    }
+    //如果没有取到空闲的,就创建一个新的频道
+    freeChannel =freeChannel|| (this.MEDIA_OBJ_TABLE_ID - 20 - mediaLen);
+
     loger.log('监课获取推流地址->' + freeChannel + " mediaLen:" + mediaLen);
     //默认方式推流
     let pubType = "live";
     ////flash推流
-    //if(_param&&_param.type=="flash"){
-    //    pubType ="flash";
-    //}
 
     //端口,有端口就显示 ":xxx",没有端口就是""
     let port = (GlobalConfig.MS_PUBLISH_PORT == "" || GlobalConfig.MS_PUBLISH_PORT == null) ? "" : ":" + GlobalConfig.MS_PUBLISH_PORT;
--
libgit2 0.24.0