From 8e3ab4f43ef7f418623b5f176b94fa2408760b99 Mon Sep 17 00:00:00 2001 From: Aslak Knutsen Date: Thu, 19 Sep 2013 23:30:23 +0200 Subject: [PATCH] Send current Active Markup and Active Options to Connecting Client When a new user connect during a presentation we send the client the current known active data so he can catch up on what's going on. Issue: #1 --- .../onslyde/websockets/OnslydeWebSocketHandler.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/onslyde/websockets/OnslydeWebSocketHandler.java b/src/main/java/com/onslyde/websockets/OnslydeWebSocketHandler.java index 9b69ceb..2463584 100644 --- a/src/main/java/com/onslyde/websockets/OnslydeWebSocketHandler.java +++ b/src/main/java/com/onslyde/websockets/OnslydeWebSocketHandler.java @@ -21,8 +21,10 @@ of this software and associated documentation files (the "Software"), to package com.onslyde.websockets; import com.onslyde.model.Mediator; +import com.onslyde.model.Mediator.SessionTracker; import com.onslyde.model.SessionManager; import com.onslyde.util.ClientEvent; + import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.websocket.api.Session; import org.eclipse.jetty.websocket.api.annotations.*; @@ -30,6 +32,7 @@ of this software and associated documentation files (the "Software"), to import javax.enterprise.event.Observes; import javax.inject.Inject; + import java.io.IOException; import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; @@ -141,12 +144,16 @@ public void onWebSocketConnect(Session session) } System.out.println("_____sessions in map: " + mediator.getSessionID() + " users session: " + sessionID + " size for session: " + mediator.getSessions().get(sessionID).size() + "---" + mediator.getSessions().get(sessionID).get(attendeeIP)); - if (getSessionTracker(sessionID) != null) { - List options = getSessionTracker(sessionID).getActiveOptions(); + SessionTracker sesionTracker = getSessionTracker(sessionID); + if (sesionTracker != null) { + List options = sesionTracker.getActiveOptions(); if (options.size() == 3) { - //only send options to this connection this.session.getRemote().sendStringByFuture(ClientEvent.createEvent("updateOptions", options, sessionID)); } + String activeMarkup = sesionTracker.getActiveMarkup(); + if(activeMarkup != null) { + this.session.getRemote().sendStringByFuture(ClientEvent.remoteMarkup(activeMarkup,"",sessionID)); + } } } } catch (Exception e) {