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>