This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch 4.0.x
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/4.0.x by this push:
new 4566d7d [OPENMEETINGS-1836] more work on performance: micActivity
4566d7d is described below
commit 4566d7d9aa88ff519aeecc50f9a0f66a1891edef
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 ++++--
.../openmeetings/db/manager/IClientManager.java | 1 +
.../openmeetings/db/util/ws/RoomMessage.java | 1 -
.../apache/openmeetings/web/app/ClientManager.java | 8 +++++++
.../apache/openmeetings/web/room/RoomPanel.java | 13 -----------
.../org/apache/openmeetings/web/room/room-base.js | 3 +++
.../apache/openmeetings/web/room/video-manager.js | 25 +++++++++++++++++++++-
.../src/main/webapp/WEB-INF/classes/hazelcast.xml | 2 +-
8 files changed, 42 insertions(+), 18 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 000e74a..2279c28 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
@@ -942,8 +942,11 @@ public class ScopeApplicationAdapter extends
MultiThreadedApplicationAdapter imp
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 4987fe3..bde1a40 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
@@ -118,6 +118,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 23ac29c..1fc8626 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
@@ -581,19 +581,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 d89c851..c575f5c 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
@@ -180,6 +180,9 @@ var Room = (function() {
if (typeof(VideoSettings) !== 'undefined') {
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 e3c451a..4e571ae 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
@@ -3,7 +3,28 @@ var VideoManager = (function() {
const self = {};
let share, inited = false;
+ function _onWsMessage(jqEvent, msg) {
+ try {
+ if (msg instanceof Blob) {
+ return; //ping
+ }
+ const m = jQuery.parseJSON(msg);
+ if (m && 'mic' === m.type) {
+ switch (m.id) {
+ case 'activity':
+ _micActivity(m.uid, m.active);
+ onBroadcast(m);
+ break;
+ default:
+ //no-op
+ }
+ }
+ } catch (err) {
+ //no-op
+ }
+ }
function _init() {
+ Wicket.Event.subscribe("/websocket/message", _onWsMessage);
VideoSettings.init(Room.getOptions());
share = $('.room.box').find('.icon.shared.ui-button');
inited = true;
@@ -157,10 +178,12 @@ var VideoManager = (function() {
self.play = _play;
self.close = _close;
self.securityMode = function(uid, on) { $('#' +
VideoUtil.getVid(uid)).data().securityMode(on); };
- self.micActivity = _micActivity;
self.refresh = _refresh;
self.mute = _mute;
self.clickExclusive = _clickExclusive;
self.exclusive = _exclusive;
+ self.destroy = function() {
+ Wicket.Event.unsubscribe("/websocket/message", _onWsMessage);
+ }
return self;
})();
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
b/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
index 57cd2e4..c0a965b 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
@@ -25,7 +25,7 @@
>
<map name="ONLINE_USERS_KEY">
<near-cache>
- <eviction-policy>NONE</eviction-policy>
+ <eviction eviction-policy="NONE"/>
<in-memory-format>OBJECT</in-memory-format>
<cache-local-entries>true</cache-local-entries>
</near-cache>
--
To stop receiving notification emails like this one, please contact
[email protected].