From e72ed00a6c8a7043e3accc7058820585052e56fb Mon Sep 17 00:00:00 2001 From: Richard Alam <ritzalam@gmail.com> Date: Thu, 17 May 2018 12:53:44 -0700 Subject: [PATCH] - webrtc screenshare should not create another connection to red5 screenshare app --- .../managers/WebRTCDeskshareManager.as | 18 +----- .../managers/WebRTCPublishWindowManager.as | 11 +--- .../managers/WebRTCViewerWindowManager.as | 8 +-- .../services/ScreenshareService.as | 2 + .../services/WebRTCDeskshareService.as | 62 ------------------- .../screenshare/services/red5/Connection.as | 1 - 6 files changed, 9 insertions(+), 93 deletions(-) delete mode 100755 bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/WebRTCDeskshareService.as diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCDeskshareManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCDeskshareManager.as index c4ee919fa0..510498d5f4 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCDeskshareManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCDeskshareManager.as @@ -18,27 +18,19 @@ */ package org.bigbluebutton.modules.screenshare.managers { - import com.asfusion.mate.actions.builders.serviceClasses.Request; - import com.asfusion.mate.events.Dispatcher; - + import com.asfusion.mate.events.Dispatcher; import flash.external.ExternalInterface; - - import org.as3commons.lang.StringUtils; import org.as3commons.logging.api.ILogger; import org.as3commons.logging.api.getClassLogger; import org.bigbluebutton.core.Options; import org.bigbluebutton.core.UsersUtil; - import org.bigbluebutton.main.api.JSLog; import org.bigbluebutton.main.events.MadePresenterEvent; - import org.bigbluebutton.modules.phone.models.WebRTCAudioStatus; import org.bigbluebutton.modules.screenshare.events.DeskshareToolbarEvent; import org.bigbluebutton.modules.screenshare.events.IsSharingScreenEvent; import org.bigbluebutton.modules.screenshare.events.RequestToStartSharing; import org.bigbluebutton.modules.screenshare.events.ShareStartedEvent; import org.bigbluebutton.modules.screenshare.events.WebRTCViewStreamEvent; import org.bigbluebutton.modules.screenshare.model.ScreenshareOptions; - import org.bigbluebutton.modules.screenshare.services.WebRTCDeskshareService; - import org.bigbluebutton.modules.screenshare.utils.WebRTCScreenshareUtility; public class WebRTCDeskshareManager { private static const LOGGER:ILogger = getClassLogger(WebRTCDeskshareManager); @@ -47,7 +39,6 @@ package org.bigbluebutton.modules.screenshare.managers private var viewWindowManager:WebRTCViewerWindowManager; private var toolbarButtonManager:ToolbarButtonManager; private var module:ScreenshareModule; - private var service:WebRTCDeskshareService; private var globalDispatcher:Dispatcher; private var sharing:Boolean = false; private var usingWebRTC:Boolean = false; @@ -56,17 +47,15 @@ package org.bigbluebutton.modules.screenshare.managers public function WebRTCDeskshareManager() { LOGGER.debug("WebRTCDeskshareManager::WebRTCDeskshareManager"); - service = new WebRTCDeskshareService(); globalDispatcher = new Dispatcher(); - publishWindowManager = new WebRTCPublishWindowManager(service); - viewWindowManager = new WebRTCViewerWindowManager(service); + publishWindowManager = new WebRTCPublishWindowManager(); + viewWindowManager = new WebRTCViewerWindowManager(); options = Options.getOptions(ScreenshareOptions) as ScreenshareOptions; } public function handleStartModuleEvent(module:ScreenshareModule):void { LOGGER.debug("WebRTC Screenshare Module starting"); this.module = module; - service.handleStartModuleEvent(module); } public function handleStopModuleEvent():void { @@ -74,7 +63,6 @@ package org.bigbluebutton.modules.screenshare.managers publishWindowManager.stopSharing(); viewWindowManager.stopViewing(); - service.disconnect(); } /*presenter stopped their program stream*/ diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCPublishWindowManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCPublishWindowManager.as index 86e17aeb7f..9580c607bf 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCPublishWindowManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCPublishWindowManager.as @@ -19,17 +19,14 @@ package org.bigbluebutton.modules.screenshare.managers { - import com.asfusion.mate.events.Dispatcher; - + import com.asfusion.mate.events.Dispatcher; import flash.events.TimerEvent; - import flash.utils.Timer; - + import flash.utils.Timer; import org.as3commons.logging.api.ILogger; import org.as3commons.logging.api.getClassLogger; import org.bigbluebutton.common.IBbbModuleWindow; import org.bigbluebutton.common.events.CloseWindowEvent; import org.bigbluebutton.common.events.OpenWindowEvent; - import org.bigbluebutton.modules.screenshare.services.WebRTCDeskshareService; import org.bigbluebutton.modules.screenshare.view.components.WebRTCDesktopPublishWindow; public class WebRTCPublishWindowManager { @@ -37,7 +34,6 @@ package org.bigbluebutton.modules.screenshare.managers private var shareWindow:WebRTCDesktopPublishWindow; private var globalDispatcher:Dispatcher; - private var service:WebRTCDeskshareService; private var buttonShownOnToolbar:Boolean = false; // Timer to auto-publish webcam. We need this timer to delay @@ -46,10 +42,9 @@ package org.bigbluebutton.modules.screenshare.managers // won't be able to view the webcam. private var autoPublishTimer:Timer; - public function WebRTCPublishWindowManager(service:WebRTCDeskshareService) { + public function WebRTCPublishWindowManager() { LOGGER.debug("PublishWindowManager init"); globalDispatcher = new Dispatcher(); - this.service = service; } public function stopSharing():void { diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCViewerWindowManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCViewerWindowManager.as index c4e22c6c58..37e73b854f 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCViewerWindowManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCViewerWindowManager.as @@ -19,27 +19,21 @@ package org.bigbluebutton.modules.screenshare.managers { import com.asfusion.mate.events.Dispatcher; - import org.as3commons.logging.api.ILogger; import org.as3commons.logging.api.getClassLogger; import org.bigbluebutton.common.IBbbModuleWindow; import org.bigbluebutton.common.events.CloseWindowEvent; import org.bigbluebutton.common.events.OpenWindowEvent; - import org.bigbluebutton.modules.screenshare.services.WebRTCDeskshareService; - import org.bigbluebutton.modules.screenshare.view.components.ScreenshareViewWindow; - import org.bigbluebutton.modules.screenshare.view.components.WebRTCDesktopPublishWindow; import org.bigbluebutton.modules.screenshare.view.components.WebRTCDesktopViewWindow; public class WebRTCViewerWindowManager { private static const LOGGER:ILogger = getClassLogger(ViewerWindowManager); private var viewWindow:WebRTCDesktopViewWindow; - private var service:WebRTCDeskshareService; private var isViewing:Boolean = false; private var globalDispatcher:Dispatcher; - public function WebRTCViewerWindowManager(service:WebRTCDeskshareService) { - this.service = service; + public function WebRTCViewerWindowManager() { globalDispatcher = new Dispatcher(); } diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/ScreenshareService.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/ScreenshareService.as index 4087f09bf0..95674cead8 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/ScreenshareService.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/ScreenshareService.as @@ -72,6 +72,8 @@ package org.bigbluebutton.modules.screenshare.services { public function checkIfPresenterIsSharingScreen():void { LOGGER.debug("check if presenter is sharing screen"); sender.isScreenSharing(UsersUtil.getInternalMeetingID()); + // Send a query if webrtc screenshare is being used. (ralam may 17, 2017); + sender.queryForScreenshare(); } public function requestShareToken():void { diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/WebRTCDeskshareService.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/WebRTCDeskshareService.as deleted file mode 100755 index 68eb2385cc..0000000000 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/WebRTCDeskshareService.as +++ /dev/null @@ -1,62 +0,0 @@ -/** -* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ -* -* Copyright (c) 2015 BigBlueButton Inc. and by respective authors (see below). -* -* This program is free software; you can redistribute it and/or modify it under the -* terms of the GNU Lesser General Public License as published by the Free Software -* Foundation; either version 3.0 of the License, or (at your option) any later -* version. -* -* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY -* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License along -* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. -* -*/ -package org.bigbluebutton.modules.screenshare.services -{ - import com.asfusion.mate.events.Dispatcher; - - import flash.net.NetConnection; - - import org.as3commons.logging.api.ILogger; - import org.as3commons.logging.api.getClassLogger; - import org.bigbluebutton.modules.screenshare.services.red5.Connection; - - public class WebRTCDeskshareService - { - private static const LOGGER:ILogger = getClassLogger(ScreenshareService); - - private var red5conn:Connection; - - private var module:ScreenshareModule; - private var dispatcher:Dispatcher; - - private var sender:MessageSender; - - public function WebRTCDeskshareService() { - this.dispatcher = new Dispatcher(); - - red5conn = new Connection(); - sender = new MessageSender(red5conn); - sender.queryForScreenshare(); - } - - public function handleStartModuleEvent(module:ScreenshareModule):void { - LOGGER.debug("Deskshare Module starting"); - this.module = module; - red5conn.connect(); - } - - public function getConnection():Connection{ - return red5conn; - } - - public function disconnect():void{ - red5conn.disconnect(); - } - } -} diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/red5/Connection.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/red5/Connection.as index aa17340de9..3f79f9d611 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/red5/Connection.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/red5/Connection.as @@ -33,7 +33,6 @@ package org.bigbluebutton.modules.screenshare.services.red5 { import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.core.managers.ReconnectionManager; import org.bigbluebutton.main.events.BBBEvent; - import org.bigbluebutton.main.model.users.events.ConnectionFailedEvent; import org.bigbluebutton.modules.screenshare.events.ViewStreamEvent; import org.bigbluebutton.modules.screenshare.model.ScreenshareModel; import org.bigbluebutton.modules.screenshare.model.ScreenshareOptions; -- GitLab