summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/web/socket/WebRTCSocket.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/web/socket/WebRTCSocket.java')
-rw-r--r--ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/web/socket/WebRTCSocket.java192
1 files changed, 84 insertions, 108 deletions
diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/web/socket/WebRTCSocket.java b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/web/socket/WebRTCSocket.java
index 76cb3b8f..f65a07cc 100644
--- a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/web/socket/WebRTCSocket.java
+++ b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/web/socket/WebRTCSocket.java
@@ -6,7 +6,7 @@
* ===================================================================
*
* Unless otherwise specified, all software contained herein is licensed
- * under the Apache License, Version 2.0 (the “License”);
+ * under the Apache License, Version 2.0 (the "License");
* you may not use this software except in compliance with the License.
* You may obtain a copy of the License at
*
@@ -19,7 +19,7 @@
* limitations under the License.
*
* Unless otherwise specified, all documentation contained herein is licensed
- * under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
* you may not use this documentation except in compliance with the License.
* You may obtain a copy of the License at
*
@@ -46,116 +46,92 @@ import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+
import com.fasterxml.jackson.databind.ObjectMapper;
@ServerEndpoint("/webrtc")
public class WebRTCSocket {
-
-
- public static Map<String,Hashtable<String,Object[]>> channelMap = new Hashtable<String,Hashtable<String,Object[]>>();
- public Map<String,String> sessionMap = new Hashtable<String,String>();
- ObjectMapper mapper = new ObjectMapper();
-
-
- @OnMessage
- public void message(String message, Session session) {
- try {
- //JSONObject jsonObject = new JSONObject(message);
- @SuppressWarnings("unchecked")
- Map<String,Object> jsonObject = mapper.readValue(message, Map.class);
- try {
- Object isOpen = jsonObject.get("open");
- if(isOpen != null && (Boolean)isOpen == true) {
- String channel = (String) jsonObject.get("channel");
+
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WebRTCSocket.class);
+
+ private final static Map<String, Hashtable<String, Object[]>> channelMap = new Hashtable<String, Hashtable<String, Object[]>>();
+ private final Map<String, String> sessionMap = new Hashtable<String, String>();
+ private final ObjectMapper mapper = new ObjectMapper();
+
+ @OnMessage
+ public void message(String message, Session session) {
+ try {
+ @SuppressWarnings("unchecked")
+ Map<String, Object> jsonObject = mapper.readValue(message, Map.class);
+ try {
+ Object isOpen = jsonObject.get("open");
+ if (isOpen != null && (Boolean) isOpen) {
+ String channel = (String) jsonObject.get("channel");
Object value = channelMap.get(channel);
- Hashtable<String,Object[]> sourceDestMap = null;
- if(value == null)
- sourceDestMap = new Hashtable<String,Object[]>();
- else
- sourceDestMap = (Hashtable<String,Object[]>) value;
-
- sourceDestMap.put(session.getId(), new Object[]{session});
- channelMap.put(channel, sourceDestMap);
- sessionMap.put(session.getId(), channel);
-
-
- }
- }
- catch (Exception je) {
- je.printStackTrace();
- }
-
- try{
-
- Object dataObj = jsonObject.get("data");
- if(dataObj == null)
- return;
- Map<String,Object> dataMapObj = ( Map<String,Object>)dataObj;
- //Object thisUserId = dataMapObj.get("userid");
- String channel = null;
- try{
- Object channelObj = dataMapObj.get("sessionid");
- if(channelObj != null)
- channel = (String) channelObj;
- else
- channel = (String) jsonObject.get("channel");
- }
- catch(Exception json) {
- json.printStackTrace();
- }
-
- /*
- JSONObject dataMapObj = (JSONObject)dataObj;
- Object thisUserId = dataMapObj.get("userid");
- String channel = (String) dataMapObj.get("sessionid");
- Hashtable<String,Object> sourceDestMap = sessionMap.get(channel);
-
- if(thisUserId != null && sourceDestMap.get((String)thisUserId) == null) {
- sourceDestMap.put((String)thisUserId, new Object[] {message, session});
- }
-
- for(String userId : sourceDestMap.keySet()){
- if(!userId.equals(thisUserId)) {
- Session otherSession = (Session) ((Object[])sourceDestMap.get(userId))[1];
- otherSession.getBasicRemote().sendText(message);
- }
- }
- */
-
- Hashtable<String,Object[]> sourceDestMap = channelMap.get(channel);
- if(sourceDestMap != null)
- for(String id : sourceDestMap.keySet()){
- if(!id.equals(session.getId())) {
- Session otherSession = (Session) ((Object[])sourceDestMap.get(id))[0];
- if(otherSession.isOpen())
- otherSession.getBasicRemote().sendText(mapper.writeValueAsString(dataObj));
- }
-
- }
- }
- catch (Exception je) {
- je.printStackTrace();
- }
-
- }
- catch (Exception je) {
- je.printStackTrace();
- }
- //System.out.println("Message received:" + message);
- }
-
- @OnOpen
- public void open(Session session) {
- // System.out.println("Channel opened");
- }
-
- @OnClose
- public void close(Session session) {
- String channel = sessionMap.get(session.getId());
- if (channel != null) {
- channelMap.remove(channel);
- }
- // System.out.println("Channel closed");
- }
+ Hashtable<String, Object[]> sourceDestMap;
+ if (value == null)
+ sourceDestMap = new Hashtable<>();
+ else
+ sourceDestMap = (Hashtable<String, Object[]>) value;
+
+ sourceDestMap.put(session.getId(), new Object[] { session });
+ channelMap.put(channel, sourceDestMap);
+ sessionMap.put(session.getId(), channel);
+
+ }
+ } catch (Exception je) {
+ logger.error(EELFLoggerDelegate.errorLogger, "mesage failed", je);
+ }
+
+ try {
+ Object dataObj = jsonObject.get("data");
+ if (dataObj == null)
+ return;
+ Map<String, Object> dataMapObj = (Map<String, Object>) dataObj;
+ String channel = null;
+ try {
+ Object channelObj = dataMapObj.get("sessionid");
+ if (channelObj != null)
+ channel = (String) channelObj;
+ else
+ channel = (String) jsonObject.get("channel");
+ } catch (Exception json) {
+ logger.error(EELFLoggerDelegate.errorLogger, "mesage failed", json);
+ }
+
+
+ Hashtable<String, Object[]> sourceDestMap = channelMap.get(channel);
+ if (sourceDestMap != null)
+ for (String id : sourceDestMap.keySet()) {
+ if (!id.equals(session.getId())) {
+ Session otherSession = (Session) (sourceDestMap.get(id))[0];
+ if (otherSession.isOpen())
+ otherSession.getBasicRemote().sendText(mapper.writeValueAsString(dataObj));
+ }
+
+ }
+ } catch (Exception je) {
+ logger.error(EELFLoggerDelegate.errorLogger, "mesage failed", je);
+ }
+
+ } catch (Exception je) {
+ logger.error(EELFLoggerDelegate.errorLogger, "mesage failed", je);
+ }
+ }
+
+ @OnOpen
+ public void open(Session session) {
+ logger.debug(EELFLoggerDelegate.debugLogger, "Session opened {}", session);
+ }
+
+ @OnClose
+ public void close(Session session) {
+ String channel = sessionMap.get(session.getId());
+ if (channel != null) {
+ channelMap.remove(channel);
+ }
+ logger.debug(EELFLoggerDelegate.debugLogger, "Channel closed");
+ }
}