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:04:07 UTC
openmeetings git commit: [OPENMEETINGS-1677] more work on ws messages
Repository: openmeetings
Updated Branches:
refs/heads/3.3.x 9ffba612e -> e40c83813
[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/e40c8381
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/e40c8381
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/e40c8381
Branch: refs/heads/3.3.x
Commit: e40c83813fe59aaa05cd021e66e221d6ae007649
Parents: 9ffba61
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:03:48 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/e40c8381/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 681efd5..b98c517 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/e40c8381/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 7a5ec65..e16b8ec 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
@@ -209,12 +209,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) {