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/09/25 14:49:20 UTC
[openmeetings] branch master updated: [OPENMEETINGS-1649] code
clean-up
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 fa43824 [OPENMEETINGS-1649] code clean-up
fa43824 is described below
commit fa438248ee9cdb8247d9a6f0de0a292694d83270
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Tue Sep 25 21:49:06 2018 +0700
[OPENMEETINGS-1649] code clean-up
---
.../org/apache/openmeetings/core/remote/KRoom.java | 24 ++--------------
.../apache/openmeetings/core/remote/KStream.java | 16 ++++-------
.../openmeetings/core/remote/KurentoHandler.java | 33 ++++++++++++++--------
.../openmeetings/core/util/WebSocketHelper.java | 6 ++--
.../openmeetings/web/room/raw-video-manager.js | 2 +-
.../org/apache/openmeetings/web/room/raw-video.js | 1 +
.../webapp/WEB-INF/classes/applicationContext.xml | 2 +-
7 files changed, 34 insertions(+), 50 deletions(-)
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
index d4b1d77..3bc9904 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
@@ -21,8 +21,6 @@
*/
package org.apache.openmeetings.core.remote;
-import static org.apache.openmeetings.core.remote.KurentoHandler.newKurentoMsg;
-
import java.io.Closeable;
import java.util.Collection;
import java.util.Map;
@@ -31,18 +29,11 @@ import java.util.concurrent.ConcurrentHashMap;
import javax.annotation.PreDestroy;
import org.apache.openmeetings.db.entity.basic.Client;
-import org.apache.openmeetings.db.entity.basic.Client.StreamDesc;
import org.kurento.client.Continuation;
import org.kurento.client.MediaPipeline;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.github.openjson.JSONObject;
-
-/**
- * @author Ivan Gracia (izanmail@gmail.com)
- * @since 4.3.1
- */
public class KRoom implements Closeable {
private final static Logger log = LoggerFactory.getLogger(KRoom.class);
@@ -64,25 +55,14 @@ public class KRoom implements Closeable {
log.info("ROOM {} has been created", roomId);
}
- public KStream startBroadcast(final KurentoHandler h, Client c, StreamDesc sd) {
- log.info("ROOM {}: adding participant {}", roomId, sd.getUid());
+ public KStream startBroadcast(final KurentoHandler h, Client c) {
+ log.info("ROOM {}: adding participant {}", roomId, c.getUid());
final KStream u = new KStream(h, c, this.pipeline);
participants.put(u.getUid(), u);
h.usersByUid.put(u.getUid(), u);
- broadcast(h, c, sd);
return u;
}
- private static void broadcast(final KurentoHandler h, Client c, StreamDesc sd) {
- final JSONObject msg = newKurentoMsg();
- msg.put("id", "broadcast");
- msg.put("uid", sd.getUid());
- msg.put("stream", new JSONObject(sd));
- msg.put("client", c.toJson(true));
- log.debug("User {}: has started broadcast", sd.getUid());
- h.sendClient(sd.getSid(), msg);
- }
-
public Collection<KStream> getParticipants() {
return participants.values();
}
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
index e47c6d7..85b9010 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
@@ -45,11 +45,6 @@ import org.slf4j.LoggerFactory;
import com.github.openjson.JSONObject;
-/**
- *
- * @author Ivan Gracia (izanmail@gmail.com)
- * @since 4.3.1
- */
public class KStream implements IKStream {
private static final Logger log = LoggerFactory.getLogger(KStream.class);
@@ -192,12 +187,11 @@ public class KStream implements IKStream {
endpoint.addIceCandidateFoundListener(new EventListener<IceCandidateFoundEvent>() {
@Override
public void onEvent(IceCandidateFoundEvent event) {
- JSONObject response = newKurentoMsg();
- response.put("id", "iceCandidate");
- response.put("uid", uid);
- response.put("candidate", convert(JsonUtils.toJsonObject(event.getCandidate())));
- h.sendClient(c.getSid(), response);
- }
+ h.sendClient(c.getSid(), newKurentoMsg()
+ .put("id", "iceCandidate")
+ .put("uid", uid)
+ .put("candidate", convert(JsonUtils.toJsonObject(event.getCandidate()))));
+ }
});
return endpoint;
}
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
index 050337a..a0a9987 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
@@ -156,6 +156,7 @@ public class KurentoHandler {
public void destroy() {
if (client != null) {
+ //FIXME TODO destroy connected objects
client.destroy();
}
}
@@ -222,29 +223,34 @@ public class KurentoHandler {
log.warn("Incoming message from invalid user");
}
log.debug("Incoming message from user with ID '{}': {}", c.getUserId(), msg);
- KStream user = getByUid(_c.getUid());
+ KStream stream = getByUid(_c.getUid());
+ //FIXME TODO check client rights here
switch (cmdId) {
case "toggleActivity":
toggleActivity(c, Client.Activity.valueOf(msg.getString("activity")));
break;
case "broadcastStarted":
{
- final String sdpOffer = msg.getString("sdpOffer");
- if (user == null) {
+ if (stream != null) {
+ log.warn("Broadcast started, but strem already exists!");
return;
}
- user.videoResponse(this, c, sdpOffer);
+ KRoom room = getRoom(c.getRoomId());
+ stream = room.startBroadcast(this, c);
+ stream.videoResponse(this, c, msg.getString("sdpOffer"));
}
break;
case "onIceCandidate":
{
JSONObject candidate = msg.getJSONObject("candidate");
- if (user == null) {
+ if (stream == null) {
return;
}
- IceCandidate cand = new IceCandidate(candidate.getString("candidate"),
- candidate.getString("sdpMid"), candidate.getInt("sdpMLineIndex"));
- user.addCandidate(cand, msg.getString("uid"));
+ IceCandidate cand = new IceCandidate(
+ candidate.getString("candidate")
+ , candidate.getString("sdpMid")
+ , candidate.getInt("sdpMLineIndex"));
+ stream.addCandidate(cand, msg.getString("uid"));
}
break;
case "receiveVideo":
@@ -254,8 +260,7 @@ public class KurentoHandler {
if (sender == null) {
return;
}
- final String sdpOffer = msg.getString("sdpOffer");
- sender.videoResponse(this, c, sdpOffer);
+ sender.videoResponse(this, c, msg.getString("sdpOffer"));
}
break;
}
@@ -296,12 +301,16 @@ public class KurentoHandler {
//FIXME TODO update interview buttons
} else if (!broadcasting) {
//join
- KRoom room = getRoom(c.getRoomId());
StreamDesc sd = new StreamDesc(c.getSid(), c.getUid(), StreamDesc.Type.broadcast);
sd.setWidth(c.getWidth());
sd.setHeight(c.getHeight());
cm.update(c.addStream(sd));
- room.startBroadcast(this, c, sd);
+ log.debug("User {}: has started broadcast", sd.getUid());
+ sendClient(sd.getSid(), newKurentoMsg()
+ .put("id", "broadcast")
+ .put("uid", sd.getUid())
+ .put("stream", new JSONObject(sd))
+ .put("client", c.toJson(true)));
//FIXME TODO update interview buttons
} else {
//change constraints
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index 9d9fe55..700ccf6 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@ -231,7 +231,7 @@ public class WebSocketHelper {
send(a -> ((IApplication)a).getBean(IClientManager.class).listByUser(userId), (t, c) -> {
try {
t.sendMessage(m);
- } catch (IOException e) {
+ } catch (Exception e) {
log.error("Error while sending message to user", e);
}
}, null);
@@ -254,7 +254,7 @@ public class WebSocketHelper {
executor.run(() -> {
try {
c.sendMessage(m);
- } catch (IOException e) {
+ } catch (Exception e) {
log.error("Error while sending message to ALL", e);
}
});
@@ -274,7 +274,7 @@ public class WebSocketHelper {
sendRoom(roomId, (t, c) -> {
try {
t.sendMessage(func == null ? m.toString() : func.apply(m, c));
- } catch (IOException e) {
+ } catch (Exception e) {
log.error("Error while broadcasting message to room", e);
}
}, check);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
index e549956..772ad4a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
@@ -99,7 +99,7 @@ var VideoManager = (function() {
return;
}
if ('kurento' === m.type && 'test' !== m.mode) {
- OmUtil.info('Received message: ' + m);
+ OmUtil.info('Received message: ' + msg);
switch (m.id) {
case 'broadcastStopped':
_closeV($('#' + VideoUtil.getVid(m.uid)));
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
index f30275d..9beb8d8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
@@ -220,6 +220,7 @@ var Video = (function() {
OmUtil.log('Disposing participant ' + c.uid);
if (!!rtcPeer) {
rtcPeer.dispose();
+ rtcPeer = null;
}
});
vc = v.find('.video');
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
index 12cbf71..5ecac77 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
@@ -140,5 +140,5 @@
<!-- Kurento -->
<bean id="kurentoHandler" class="org.apache.openmeetings.core.remote.KurentoHandler" init-method="init" destroy-method="destroy"
- p:kurentoWsUrl="ws://localhost:8888/kurento" p:checkTimeout="200"/>
+ p:kurentoWsUrl="ws://192.168.15.177:8888/kurento" p:checkTimeout="200"/>
</beans>