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].

Reply via email to