瀏覽代碼

在线课程

denny 1 年之前
父節點
當前提交
d42f5120e1
共有 3 個文件被更改,包括 32 次插入5 次删除
  1. 1 1
      Common/VisitorLiveHeartRateManager.cs
  2. 29 4
      Service/EducationService.Course.cs
  3. 2 0
      Service/EducationService.cs

+ 1 - 1
Common/VisitorLiveHeartRateManager.cs

@@ -14,7 +14,7 @@ namespace WingEducationService.Common
     /// </summary>
     public class VisitorLiveHeartRateManager
     {
-        private int _rateSeconds => EnvironmentConfigManager.GetParammeter<IntParameter>("Course", "HeartRateSeconds").Value;//120秒
+        private int _rateSeconds => EnvironmentConfigManager.GetParammeter<IntParameter>("Course", "HeartRateSeconds").Value;//30秒
         private int _networkErrTimes => EnvironmentConfigManager.GetParammeter<IntParameter>("LiveConsultation", "NetworkErrTimes").Value;//3次间隔无心跳,网络不佳
         private int _leaveRoomTimes => EnvironmentConfigManager.GetParammeter<IntParameter>("LiveConsultation", "LeaveRoomTimes").Value;//10次间隔无心跳,离开房间
         private ConcurrentDictionary<string, LiveHeartRateInfo> _clientTokens = new ConcurrentDictionary<string, LiveHeartRateInfo>();

+ 29 - 4
Service/EducationService.Course.cs

@@ -1883,8 +1883,8 @@ namespace WingEducationService.Service
         /// <returns></returns> 
         public async Task<bool> VisitorHeartRateAsync(QueryBrowsedRecordRequest request)
         {
-            var userToken = await _authenticationService.GetTokenAsync(request);
-            _visitorLiveHeartRateManager.AddOrUpdate(userToken.Code, request.UserCode, request.DisplayName, request.RelevanceCode);
+            // var userToken = await _authenticationService.GetTokenAsync(request);
+            _visitorLiveHeartRateManager.AddOrUpdate(request.UserCode, request.UserCode, request.DisplayName, request.RelevanceCode);
             return await Task.FromResult<bool>(true);
         }
 
@@ -1895,8 +1895,8 @@ namespace WingEducationService.Service
         /// <returns></returns>
         public async Task<bool> VisitorLeaveLiveCourseAsync(QueryBrowsedRecordRequest request)
         {
-            var userToken = await _authenticationService.GetTokenAsync(request);
-            _visitorLiveHeartRateManager.Close(userToken.Code, request.UserCode, request.DisplayName, request.RelevanceCode);
+            // var userToken = await _authenticationService.GetTokenAsync(request);
+            _visitorLiveHeartRateManager.Close(request.UserCode, request.UserCode, request.DisplayName, request.RelevanceCode);
             VisitorHandleClientLeave(request.RelevanceCode, request.UserCode, request.DisplayName);
             return await Task.FromResult<bool>(true);
         }
@@ -1913,6 +1913,31 @@ namespace WingEducationService.Service
         }
 
         #region private method  
+        /// <summary>
+        /// 加载在线游客到内存中
+        /// </summary>
+        private async void InitOnlineVisitorLiveHeartRate()
+        {
+            try
+            {
+                //获取所有的在线用户信息
+                var recordsInfo = await _educationDBService.QueryAllOnlineVisitorInfoByDBAsync();
+
+                //记录信息存在,添加到心跳中
+                if (recordsInfo?.Count > 0)
+                {
+                    foreach(var item in recordsInfo)
+                    {
+                        _visitorLiveHeartRateManager.AddOrUpdate(item.UserCode, item.UserCode, item.DisplayName, item.RelevanceCode);
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                Logger.WriteLineWarn($"LiveService InitOnlineVisitorLiveHeartRate err, ex:{ex}");
+            }
+        }
+
         /// <summary>
         /// Visitor心跳检测进入房间
         /// </summary>

+ 2 - 0
Service/EducationService.cs

@@ -175,6 +175,8 @@ namespace WingEducationService.Service
         {
             //todo 启动后判断是否有要开始直播的提醒
             CaculateScheduleSet();
+            //todo 加载在线游客到内存中
+            InitOnlineVisitorLiveHeartRate();
         }
         #endregion