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 2017/08/02 03:10:46 UTC

[1/2] openmeetings git commit: [OPENMEETINGS-1677] more work on ws messages

Repository: openmeetings
Updated Branches:
  refs/heads/master a26bd3277 -> 1e298f779


[OPENMEETINGS-1677] more work on ws messages


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/468ba673
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/468ba673
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/468ba673

Branch: refs/heads/master
Commit: 468ba673effa8e8889e439b20ee905bd6c748310
Parents: a26bd32
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Wed Aug 2 10:03:48 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Wed Aug 2 10:04:36 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/core/util/WebSocketHelper.java | 52 +++++++++++++++-----
 .../openmeetings/web/app/Application.java       | 10 ++--
 2 files changed, 48 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/468ba673/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
----------------------------------------------------------------------
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 a3ecad3..ab5b3a7 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
@@ -120,41 +120,65 @@ public class WebSocketHelper {
 
 	public static void send(IClusterWsMessage _m) {
 		if (_m instanceof WsMessageRoomMsg) {
-			sendRoom(((WsMessageRoomMsg)_m).getMsg());
+			sendRoom(((WsMessageRoomMsg)_m).getMsg(), false);
 		} else if (_m instanceof WsMessageRoom) {
 			WsMessageRoom m = (WsMessageRoom)_m;
-			sendRoom(m.getRoomId(), m.getMsg());
+			sendRoom(m.getRoomId(), m.getMsg(), false);
 		} else if (_m instanceof WsMessageChat) {
 			WsMessageChat m = (WsMessageChat)_m;
-			sendRoom(m.getChatMessage(), m.getMsg());
+			sendRoom(m.getChatMessage(), m.getMsg(), false);
 		} else if (_m instanceof WsMessageUser) {
 			WsMessageUser m = (WsMessageUser)_m;
-			sendUser(m.getUserId(), m.getMsg());
+			sendUser(m.getUserId(), m.getMsg(), false);
 		} else if (_m instanceof WsMessageAll) {
-			sendAll(((WsMessageAll)_m).getMsg());
+			sendAll(((WsMessageAll)_m).getMsg(), false);
 		}
 	}
 
 	public static void sendRoom(final RoomMessage m) {
-		publish(new WsMessageRoomMsg(m));
+		sendRoom(m, true);
+	}
+
+	protected static void sendRoom(final RoomMessage m, boolean publish) {
+		if (publish) {
+			publish(new WsMessageRoomMsg(m));
+		}
 		log.debug("Sending WebSocket message: {} {}", m.getType(), m instanceof TextRoomMessage ? ((TextRoomMessage)m).getText() : "");
 		sendRoom(m.getRoomId(), (t, c) -> t.sendMessage(m), null);
 	}
 
 	public static void sendRoom(final Long roomId, final JSONObject m) {
-		publish(new WsMessageRoom(roomId, m));
+		sendRoom(roomId, m, true);
+	}
+
+	protected static void sendRoom(final Long roomId, final JSONObject m, boolean publish) {
+		if (publish) {
+			publish(new WsMessageRoom(roomId, m));
+		}
 		sendRoom(roomId, m, null, null);
 	}
 
 	public static void sendRoom(ChatMessage m, JSONObject msg) {
-		publish(new WsMessageChat(m, msg));
+		sendRoom(m, msg, true);
+	}
+
+	protected static void sendRoom(ChatMessage m, JSONObject msg, boolean publish) {
+		if (publish) {
+			publish(new WsMessageChat(m, msg));
+		}
 		sendRoom(m.getToRoom().getId(), msg
 				, c -> !m.isNeedModeration() || (m.isNeedModeration() && c.hasRight(Right.moderator))
 				, null);
 	}
 
 	public static void sendUser(final Long userId, final String m) {
-		publish(new WsMessageUser(userId, m));
+		sendUser(userId, m, true);
+	}
+
+	protected static void sendUser(final Long userId, final String m, boolean publish) {
+		if (publish) {
+			publish(new WsMessageUser(userId, m));
+		}
 		send(a -> ((IApplication)a).getOmClients(userId), (t, c) -> {
 			try {
 				t.sendMessage(m);
@@ -164,9 +188,15 @@ public class WebSocketHelper {
 		}, null);
 	}
 
-	//TODO should this be unified???
 	public static void sendAll(final String m) {
-		publish(new WsMessageAll(m));
+		sendAll(m, true);
+	}
+
+	//TODO should this be unified???
+	protected static void sendAll(final String m, boolean publish) {
+		if (publish) {
+			publish(new WsMessageAll(m));
+		}
 		Application app = Application.get(OpenmeetingsVariables.wicketApplicationName);
 		WebSocketSettings settings = WebSocketSettings.Holder.get(app);
 		IWebSocketConnectionRegistry reg = settings.getConnectionRegistry();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/468ba673/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index 13febec..07b05c9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -212,12 +212,16 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 				//check for duplicate instance-names
 				Set<String> names = new HashSet<>();
 				for (Member m : evt.getMembers()) {
-					String serverId = evt.getMember().getStringAttribute(NAME_ATTR_KEY);
-					if (names.contains(serverId)) {
-						log.warn("Duplicate cluster instance with name {} found {}", serverId, m);
+					if (evt.getMember().getUuid().equals(m.getUuid())) {
+						continue;
 					}
+					String serverId = m.getStringAttribute(NAME_ATTR_KEY);
 					names.add(serverId);
 				}
+				String serverId = evt.getMember().getStringAttribute(NAME_ATTR_KEY);
+				if (names.contains(serverId)) {
+					log.warn("Duplicate cluster instance with name {} found {}", serverId, evt.getMember());
+				}
 			}
 		});
 		setPageManagerProvider(new DefaultPageManagerProvider(this) {


[2/2] openmeetings git commit: [OPENMEETINGS-1677] more work on ws messages

Posted by so...@apache.org.
[OPENMEETINGS-1677] more work on ws messages


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/1e298f77
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/1e298f77
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/1e298f77

Branch: refs/heads/master
Commit: 1e298f7790a81a1ee4f2e3a721755ffc4327fec5
Parents: 468ba67
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Wed Aug 2 10:10:38 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Wed Aug 2 10:10:38 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/core/util/WebSocketHelper.java | 10 +++----
 .../web/room/wb/WbWebSocketHelper.java          | 30 ++++++++++++++++----
 2 files changed, 29 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1e298f77/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
----------------------------------------------------------------------
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 ab5b3a7..0cff626 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
@@ -139,7 +139,7 @@ public class WebSocketHelper {
 		sendRoom(m, true);
 	}
 
-	protected static void sendRoom(final RoomMessage m, boolean publish) {
+	private static void sendRoom(final RoomMessage m, boolean publish) {
 		if (publish) {
 			publish(new WsMessageRoomMsg(m));
 		}
@@ -151,7 +151,7 @@ public class WebSocketHelper {
 		sendRoom(roomId, m, true);
 	}
 
-	protected static void sendRoom(final Long roomId, final JSONObject m, boolean publish) {
+	private static void sendRoom(final Long roomId, final JSONObject m, boolean publish) {
 		if (publish) {
 			publish(new WsMessageRoom(roomId, m));
 		}
@@ -162,7 +162,7 @@ public class WebSocketHelper {
 		sendRoom(m, msg, true);
 	}
 
-	protected static void sendRoom(ChatMessage m, JSONObject msg, boolean publish) {
+	private static void sendRoom(ChatMessage m, JSONObject msg, boolean publish) {
 		if (publish) {
 			publish(new WsMessageChat(m, msg));
 		}
@@ -175,7 +175,7 @@ public class WebSocketHelper {
 		sendUser(userId, m, true);
 	}
 
-	protected static void sendUser(final Long userId, final String m, boolean publish) {
+	private static void sendUser(final Long userId, final String m, boolean publish) {
 		if (publish) {
 			publish(new WsMessageUser(userId, m));
 		}
@@ -193,7 +193,7 @@ public class WebSocketHelper {
 	}
 
 	//TODO should this be unified???
-	protected static void sendAll(final String m, boolean publish) {
+	private static void sendAll(final String m, boolean publish) {
 		if (publish) {
 			publish(new WsMessageAll(m));
 		}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1e298f77/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
index 13e3ae3..a96081f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
@@ -42,25 +42,37 @@ public class WbWebSocketHelper extends WebSocketHelper {
 		if (_m instanceof WsMessageWb) {
 			WsMessageWb m = (WsMessageWb)_m;
 			if (m.getUid() == null) {
-				sendWbAll(m.getRoomId(), m.getMeth(), m.getObj());
+				sendWbAll(m.getRoomId(), m.getMeth(), m.getObj(), false);
 			} else {
-				sendWbOthers(m.getRoomId(), m.getMeth(), m.getObj(), m.getUid());
+				sendWbOthers(m.getRoomId(), m.getMeth(), m.getObj(), m.getUid(), false);
 			}
 		} else if (_m instanceof WsMessageWbFile) {
 			WsMessageWbFile m = (WsMessageWbFile)_m;
-			sendWbFile(m.getRoomId(), m.getWbId(), m.getRoomUid(), m.getFile(), m.getFileItem());
+			sendWbFile(m.getRoomId(), m.getWbId(), m.getRoomUid(), m.getFile(), m.getFileItem(), false);
 		} else {
 			WebSocketHelper.send(_m);
 		}
 	}
 
 	public static void sendWbAll(Long roomId, WbAction meth, JSONObject obj) {
-		publish(new WsMessageWb(roomId, meth, obj, null));
+		sendWbAll(roomId, meth, obj, true);
+	}
+
+	private static void sendWbAll(Long roomId, WbAction meth, JSONObject obj, boolean publish) {
+		if (publish) {
+			publish(new WsMessageWb(roomId, meth, obj, null));
+		}
 		sendWb(roomId, meth, obj, null);
 	}
 
 	public static void sendWbOthers(Long roomId, WbAction meth, JSONObject obj, final String uid) {
-		publish(new WsMessageWb(roomId, meth, obj, uid));
+		sendWbOthers(roomId, meth, obj, uid, true);
+	}
+
+	private static void sendWbOthers(Long roomId, WbAction meth, JSONObject obj, final String uid, boolean publish) {
+		if (publish) {
+			publish(new WsMessageWb(roomId, meth, obj, uid));
+		}
 		sendWb(roomId, meth, obj, c -> !uid.equals(c.getUid()));
 	}
 
@@ -103,7 +115,13 @@ public class WbWebSocketHelper extends WebSocketHelper {
 	}
 
 	public static void sendWbFile(Long roomId, long wbId, String ruid, JSONObject file, FileItem fi) {
-		publish(new WsMessageWbFile(roomId, wbId, ruid, file, fi));
+		sendWbFile(roomId, wbId, ruid, file, fi, true);
+	}
+
+	private static void sendWbFile(Long roomId, long wbId, String ruid, JSONObject file, FileItem fi, boolean publish) {
+		if (publish) {
+			publish(new WsMessageWbFile(roomId, wbId, ruid, file, fi));
+		}
 		WebSocketHelper.sendRoom(
 				roomId
 				, new JSONObject().put("type", "wb")