You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/02/09 03:51:06 UTC
[openmeetings] branch master updated: [OPENMEETINGS-1829] netstream
is closed on room exit and/or broadcast stop
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new 67a14b9 [OPENMEETINGS-1829] netstream is closed on room exit and/or broadcast stop
67a14b9 is described below
commit 67a14b9622efdf4f70ad140ca8c863d45d2c8ef0
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Fri Feb 9 10:50:36 2018 +0700
[OPENMEETINGS-1829] netstream is closed on room exit and/or broadcast stop
---
openmeetings-flash/src/main/flex/main.mxml | 7 +++++++
.../src/main/flex/org/apache/openmeetings/OmVideo.as | 4 ++++
.../java/org/apache/openmeetings/web/app/Application.java | 8 +++++++-
.../org/apache/openmeetings/web/common/menu/OmMenuItem.java | 3 ++-
.../java/org/apache/openmeetings/web/room/RoomPanel.java | 7 +------
.../main/java/org/apache/openmeetings/web/room/room-base.js | 12 +++++++++---
.../java/org/apache/openmeetings/web/room/wb/tool-util.js | 2 +-
7 files changed, 31 insertions(+), 12 deletions(-)
diff --git a/openmeetings-flash/src/main/flex/main.mxml b/openmeetings-flash/src/main/flex/main.mxml
index e59fcd2..105fc2a 100644
--- a/openmeetings-flash/src/main/flex/main.mxml
+++ b/openmeetings-flash/src/main/flex/main.mxml
@@ -182,6 +182,7 @@
}
});
ExternalInterface.addCallback("setRights", setRightsCallback);
+ ExternalInterface.addCallback("cleanup", cleanupCallback);
video.connect(function ():void {
// trust no-one
video.getNc().call("check", new Responder(function (check:Object):void {
@@ -246,6 +247,7 @@
});
ExternalInterface.addCallback("refresh", refreshCallback);
ExternalInterface.addCallback("setRights", setRightsCallback);
+ ExternalInterface.addCallback("cleanup", cleanupCallback);
copyPasteCtxMenu.clipboardMenu = true;
}
break;
@@ -430,6 +432,11 @@
_updateRemote();
}
+ private function cleanupCallback():void {
+ debug("cleanupCallback");
+ video.reset();
+ }
+
private function refreshCallback(opts:Object):void {
video.reset();
video.play(params.broadcastId); // TODO audio/video
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as b/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
index 14d8b0d..cd0a0e8 100644
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
@@ -268,8 +268,11 @@ public class OmVideo {
}
}
, sendVarsToMessageWithClient: function(obj:Object):void {
+ debug("sendVarsToMessageWithClient :: ", obj);
if ("copiedText" === obj[0]) {
ExternalInterface.call("Room.showClipboard", obj[1]);
+ } else if ("quit" === obj["message"]) {
+ reset();
}
}
};
@@ -330,6 +333,7 @@ public class OmVideo {
}
public function reset():void {
+ debug("reset:: ns ?== null " + (ns === null));
if (ns !== null) {
switch (mode) {
case PLAY:
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index 9af5134..d808031 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -128,6 +128,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
import org.apache.wicket.util.collections.ConcurrentHashSet;
import org.apache.wicket.validation.validator.UrlValidator;
+import org.red5.server.api.scope.IScope;
import org.slf4j.Logger;
import org.springframework.web.context.WebApplicationContext;
import org.wicketstuff.dashboard.WidgetRegistry;
@@ -625,8 +626,13 @@ public class Application extends AuthenticatedWebApplication implements IApplica
}
}
if (_c instanceof Client) {
- getBean(ScopeApplicationAdapter.class).dropSharing(_c, roomId);
+ ScopeApplicationAdapter scApp = getBean(ScopeApplicationAdapter.class);
+ scApp.dropSharing(_c, roomId);
Client c = (Client)_c;
+ IScope sc = scApp.getChildScope(String.valueOf(roomId));
+ for (String uid : c.getStreams()) {
+ scApp.sendMessageById("quit", uid, sc);
+ }
c.setRoom(null);
c.clear();
update(c);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/OmMenuItem.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/OmMenuItem.java
index 6cd6dad..d415bbc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/OmMenuItem.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/OmMenuItem.java
@@ -21,8 +21,9 @@ package org.apache.openmeetings.web.common.menu;
import java.util.List;
import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
+import com.googlecode.wicket.jquery.ui.widget.menu.MenuItem;
-public class OmMenuItem extends com.googlecode.wicket.jquery.ui.widget.menu.MenuItem {
+public class OmMenuItem extends MenuItem {
private static final long serialVersionUID = 1L;
private String desc;
private boolean top;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index f25ae26..8a0f212 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -722,13 +722,8 @@ public class RoomPanel extends BasePanel {
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
- response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(RoomPanel.class, "jquery.dialogextend.js"))));
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(interview ? INTERVIEWWB_JS_REFERENCE : WB_JS_REFERENCE)));
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(RoomPanel.class, "room.js"))));
- if (interview) {
- response.render(JavaScriptHeaderItem.forReference(INTERVIEWWB_JS_REFERENCE));
- } else {
- response.render(JavaScriptHeaderItem.forReference(WB_JS_REFERENCE));
- }
if (room.isVisible()) {
response.render(OnDomReadyHeaderItem.forScript(roomEnter.getCallbackScript()));
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
index 4934780..8886af1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
@@ -168,7 +168,7 @@ var Video = (function() {
vol.addClass('ui-state-error');
_handleMicStatus(false);
}
- if (swf[0].setVolume !== undefined) {
+ if (typeof(swf[0].setVolume) === 'function') {
swf[0].setVolume(val);
}
}
@@ -337,7 +337,7 @@ var Video = (function() {
}
const name = _getName();
v.dialog('option', 'title', name).parent().find('.ui-dialog-titlebar').attr('title', name);
- if (swf[0].update !== undefined) {
+ if (typeof(swf[0].update) === 'function') {
c.self ? swf[0].update() : swf[0].update(c);
}
}
@@ -355,10 +355,15 @@ var Video = (function() {
}
}
function _setRights(_r) {
- if (swf[0].setRights !== undefined) {
+ if (typeof(swf[0].setRights) === 'function') {
swf[0].setRights(_r);
}
}
+ function _cleanup() {
+ if (typeof(swf[0].cleanup) === 'function') {
+ swf[0].cleanup();
+ }
+ }
self.update = _update;
self.refresh = _refresh;
@@ -368,6 +373,7 @@ var Video = (function() {
self.securityMode = _securityMode;
self.client = function() { return c; };
self.setRights = _setRights;
+ self.cleanup = _cleanup;
return self;
});
var VideoManager = (function() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-util.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-util.js
index 98364f5..aed7918 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-util.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-util.js
@@ -55,7 +55,7 @@ var ToolUtil = (function() {
}
}
, filter: function(_o, props) {
- return props.reduce((result, key) => { result[key] = _o[key]; return result; }, {});
+ return props.reduce(function(result, key) { result[key] = _o[key]; return result; }, {});
}
};
})();
--
To stop receiving notification emails like this one, please contact
solomax@apache.org.