diff --git a/labs/vertx-akka/src/main/java/org/bigbluebutton/vertx/PrivateVerticle.java b/labs/vertx-akka/src/main/java/org/bigbluebutton/vertx/PrivateVerticle.java
index 7793200328106ca405801b77abefb58ef997bf1d..17a20b1ee60caae7b0bc507bae58501d01d4e8f3 100755
--- a/labs/vertx-akka/src/main/java/org/bigbluebutton/vertx/PrivateVerticle.java
+++ b/labs/vertx-akka/src/main/java/org/bigbluebutton/vertx/PrivateVerticle.java
@@ -122,9 +122,12 @@ public class PrivateVerticle extends AbstractVerticle {
         System.out.println("Socket SEND for: " + be.socket().webSession().id() + " \n   " + be.getRawMessage());
       } else if (be.type() == BridgeEventType.REGISTER) {
         System.out.println("Socket REGISTER for: " + be.socket().webSession().id() + " \n   " + be.getRawMessage());
-        //eb.consumer("to-vertx").handler(message -> {
-        //  System.out.println("**** response to " + be.socket().webSession().id() + " msg = " +  message.body());
-        //});
+        eb.consumer("to-vertx").handler(message -> {
+          System.out.println("**** response to " + be.socket().webSession().id() + " msg = " +  message.body());
+          if (message.body().toString().equals("CLOSE_SOCKET")) {
+            be.socket().close();
+          }
+        });
         //gw.send(be.rawMessage().toString());
       } else {
         System.out.println("Message from: " + be.socket().webSession().id() + " \n   " + be.getRawMessage());
diff --git a/labs/vertx-akka/src/main/scala/org/bigbluebutton/Boot.scala b/labs/vertx-akka/src/main/scala/org/bigbluebutton/Boot.scala
index b21cbaa918d1669c35e6d3c2ae3ee968d1413acf..9d0f4a22aeb6bce8adf13dbd682d51ec0edd4c84 100755
--- a/labs/vertx-akka/src/main/scala/org/bigbluebutton/Boot.scala
+++ b/labs/vertx-akka/src/main/scala/org/bigbluebutton/Boot.scala
@@ -18,7 +18,7 @@ object Boot extends App with SystemConfiguration {
 
   val vertxGW = new AkkaToVertxGateway(vertx)
 
-  val echoActor = system.actorOf(EchoService.props(vertxGW), "echo-actor")
+  val echoActor = system.actorOf(EchoService.props(vertxGW, vertx), "echo-actor")
   val authActor = system.actorOf(AuthService.props(vertxGW), "auth-actor")
 
   val akkaGW = new VertxToAkkaGateway(system, vertx, authActor, echoActor)
@@ -27,4 +27,4 @@ object Boot extends App with SystemConfiguration {
   val hello = new HelloWorld(vertx, akkaGW);
   hello.startup()
 
-}
\ No newline at end of file
+}
diff --git a/labs/vertx-akka/src/main/scala/org/bigbluebutton/Connection.scala b/labs/vertx-akka/src/main/scala/org/bigbluebutton/Connection.scala
index 9cbab3797206fc23ec3b442927dc29e389e219de..46ffbf1852b59fb644fdb80e675e2c6d0e6f2ddb 100755
--- a/labs/vertx-akka/src/main/scala/org/bigbluebutton/Connection.scala
+++ b/labs/vertx-akka/src/main/scala/org/bigbluebutton/Connection.scala
@@ -1,13 +1,20 @@
 package org.bigbluebutton
 
-import akka.actor.{Actor, ActorLogging, Props}
+import akka.actor.{Actor, ActorContext, ActorLogging, Props}
 
 object Connection {
-  def props(connId: String): Props =
-    Props(classOf[Connection])
+  def apply()(implicit context: ActorContext): Connection = new Connection()
 }
 
-class Connection(connId: String) extends Actor with ActorLogging {
+class Connection() (implicit val context: ActorContext) {
+
+}
+
+object ConnectionActor {
+  def props(connId: String): Props = Props(classOf[ConnectionActor])
+}
+
+class ConnectionActor(connId: String) extends Actor with ActorLogging {
 
   def receive = {
     case _ => log.debug("***** Connection cannot handle msg ")
diff --git a/labs/vertx-akka/src/main/scala/org/bigbluebutton/ConnectionManager.scala b/labs/vertx-akka/src/main/scala/org/bigbluebutton/ConnectionManager.scala
index 08115379a4664d670b1b2958d9f9decdced0ed9d..87c95945f831d8ced5ab2e14632ae5bd7fc13590 100755
--- a/labs/vertx-akka/src/main/scala/org/bigbluebutton/ConnectionManager.scala
+++ b/labs/vertx-akka/src/main/scala/org/bigbluebutton/ConnectionManager.scala
@@ -5,15 +5,15 @@ import io.vertx.core.Vertx
 
 class ConnectionManager(system: ActorSystem, vertx: Vertx) {
 
-  def connectionCreated(id: String):Unit = {
+  def connectionCreated(id: String): Unit = {
 
   }
 
-  def connectionClosed(id: String):Unit = {
+  def connectionClosed(id: String): Unit = {
 
   }
 
-  def onMessageReceived(id: String, msg: String):Unit = {
+  def onMessageReceived(id: String, msg: String): Unit = {
 
   }
 }
diff --git a/labs/vertx-akka/src/main/scala/org/bigbluebutton/EchoService.scala b/labs/vertx-akka/src/main/scala/org/bigbluebutton/EchoService.scala
index a48f76ed4b6880530b167fce91e830d3e42ef7df..7dd0ad33e7e6381b1b5a429a314c43efa2f91c3c 100755
--- a/labs/vertx-akka/src/main/scala/org/bigbluebutton/EchoService.scala
+++ b/labs/vertx-akka/src/main/scala/org/bigbluebutton/EchoService.scala
@@ -7,17 +7,24 @@ import org.bigbluebutton.vertx.IAkkaToVertxGateway
 import org.bigbluebutton.vertx.AkkaToVertxGateway
 
 object EchoService {
-  def props(gw: AkkaToVertxGateway): Props =
-    Props(classOf[EchoService], gw)
+  def props(gw: AkkaToVertxGateway, vertx: Vertx): Props =
+    Props(classOf[EchoService], gw, vertx)
 }
 
-class EchoService(gw: AkkaToVertxGateway) extends Actor with ActorLogging {
+class EchoService(gw: AkkaToVertxGateway, vertx: Vertx) extends Actor with ActorLogging {
+
+  private var i: Int = 0;
 
   def receive = {
     case msg: String => {
       //println("****** Echoing " + msg)
       gw.send("FROM ECHO: " + msg)
+      i += 1
+      if (i > 50) {
+        //gw.send("CLOSE_SOCKET")
+        vertx.eventBus.publish("to-vertx", "CLOSE_SOCKET")
+      }
     }
     case _ => log.error("Cannot handle message ")
   }
-}
\ No newline at end of file
+}