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 09340dc [OPENMEETINGS-1836] more work on performance: micActivity
09340dc is described below
commit 09340dc0bffd6be2b10261d25aeb2c68164b0e3c
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Fri Mar 30 00:28:55 2018 +0700
[OPENMEETINGS-1836] more work on performance: micActivity
---
.../core/remote/ScopeApplicationAdapter.java | 7 +++++--
.../apache/openmeetings/db/manager/IClientManager.java | 1 +
.../org/apache/openmeetings/db/util/ws/RoomMessage.java | 1 -
.../org/apache/openmeetings/web/app/ClientManager.java | 8 ++++++++
.../java/org/apache/openmeetings/web/room/RoomPanel.java | 13 -------------
.../java/org/apache/openmeetings/web/room/room-base.js | 3 +++
.../org/apache/openmeetings/web/room/video-manager.js | 16 +++++++++++++---
7 files changed, 30 insertions(+), 19 deletions(-)
diff --git
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
index 9a9c0ac..36985fe 100644
---
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
+++
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
@@ -938,8 +938,11 @@ public class ScopeApplicationAdapter /*extends
MultiThreadedApplicationAdapter i
public void micActivity(boolean active) {
IConnection current = Red5.getConnectionLocal();
StreamClient client =
streamClientManager.get(IClientUtil.getId(current.getClient()));
- WebSocketHelper.sendRoom(new
TextRoomMessage(client.getRoomId(), client, RoomMessage.Type.audioActivity
- , new JSONObject().put("sid",
client.getSid()).put("active", active).toString()));
+ WebSocketHelper.sendRoom(client.getRoomId(), new JSONObject()
+ .put("type", "mic")
+ .put("id", "activity")
+ .put("uid",
clientManager.uidBySid(client.getSid()))
+ .put("active", active));
}
/*
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IClientManager.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IClientManager.java
index 037e4e6..5535ecc 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IClientManager.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IClientManager.java
@@ -28,6 +28,7 @@ import org.apache.openmeetings.db.entity.basic.IClient;
public interface IClientManager {
Client get(String uid);
Client getBySid(String sid);
+ String uidBySid(String sid);
List<Client> listByRoom(Long roomId);
Collection<Client> listByUser(Long userId);
Client update(Client c);
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
index 3c57781..5bd5b79 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
@@ -55,7 +55,6 @@ public class RoomMessage implements IWebSocketPushMessage {
, kick
, newStream
, closeStream
- , audioActivity //user speaks
, mute
, exclusive
, quickPollUpdated
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index a81591d..45e9ad7 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -115,6 +115,14 @@ public class ClientManager implements IClientManager {
return uid == null ? null : get(uid);
}
+ @Override
+ public String uidBySid(String sid) {
+ if (sid == null) {
+ return null;
+ }
+ return mapBySid().get(sid);
+ }
+
public void exitRoom(IClient c) {
Long roomId = c.getRoomId();
removeFromRoom(c);
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 8bb95a0..a0464ad 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
@@ -590,19 +590,6 @@ public class RoomPanel extends BasePanel {
}
}
break;
- case audioActivity:
- {
- JSONObject obj = new
JSONObject(((TextRoomMessage)m).getText());
- Client c =
cm.getBySid(obj.getString("sid"));
- if (c == null) {
- log.error("Not existing
user in audioActivity {} !!!!", obj);
- return;
- }
- if
(!_c.getUid().equals(c.getUid())) {
-
handler.appendJavaScript(String.format("if (typeof(VideoManager) !==
'undefined') {VideoManager.micActivity('%s', %s);}", c.getUid(),
obj.getBoolean("active")));
- }
- }
- break;
case mute:
{
JSONObject obj = new
JSONObject(((TextRoomMessage)m).getText());
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 7a9f0d3..2a9f1f5 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
@@ -183,6 +183,9 @@ var Room = (function() {
if (typeof(VideoSettings) === 'object') {
VideoSettings.close();
}
+ if (typeof(VideoManager) === 'object') {
+ VideoManager.destroy();
+ }
$('.ui-dialog.user-video').remove();
$(window).off('keyup', _keyHandler);
$(document).off('click', _mouseHandler);
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
index b5c6af3..a0e56c0 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
@@ -72,7 +72,10 @@ var VideoManager = (function() {
return; //ping
}
const m = jQuery.parseJSON(msg);
- if (m && 'kurento' === m.type && 'test' !== m.mode) {
+ if (!m) {
+ return;
+ }
+ if ('kurento' === m.type && 'test' !== m.mode) {
OmUtil.info('Received message: ' + m);
switch (m.id) {
case 'broadcast':
@@ -97,12 +100,20 @@ var VideoManager = (function() {
default:
//no-op
}
+ } else if ('mic' === m.type) {
+ switch (m.id) {
+ case 'activity':
+ _micActivity(m.uid, m.active);
+ onBroadcast(m);
+ break;
+ default:
+ //no-op
+ }
}
} catch (err) {
OmUtil.error(err);
}
}
-
function _init() {
Wicket.Event.subscribe("/websocket/message", _onWsMessage);
VideoSettings.init(Room.getOptions());
@@ -262,7 +273,6 @@ var VideoManager = (function() {
self.update = _update;
self.play = _play;
self.close = _close;
- self.micActivity = _micActivity;
self.refresh = _refresh;
self.mute = _mute;
self.clickExclusive = _clickExclusive;
--
To stop receiving notification emails like this one, please contact
[email protected].