Advertisement
Guest User

Server

a guest
Apr 9th, 2014
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.09 KB | None | 0 0
  1. package actors
  2.  
  3. import akka.actor.{ActorRef, Actor, Props}
  4. import akka.io.{IO, Tcp}
  5. import java.net.InetSocketAddress
  6.  
  7. class Server(listener: ActorRef) extends Actor {
  8.  
  9.   import Tcp._
  10.   import context.system
  11.  
  12.   IO(Tcp) ! Bind(self, new InetSocketAddress("localhost", 9090))
  13.  
  14.   def receive = {
  15.     case b@Bound(localAddress) =>
  16.     // do some logging or setup ...
  17.  
  18.     case CommandFailed(_: Bind) => context stop self
  19.  
  20.     case c@Tcp.Connected(remote, local) =>
  21.       listener ! GatlingConnected(c.remoteAddress.toString)
  22.       println("Connected: " + c.remoteAddress)
  23.       val handler = context.actorOf(Props(classOf[ServerHandler], listener, c.remoteAddress.toString))
  24.       val connection = sender
  25.       connection ! Register(handler)
  26.   }
  27. }
  28.  
  29. class ServerHandler(listener: ActorRef, remote: String) extends Actor {
  30.  
  31.   import Tcp._
  32.  
  33.   override def receive: Receive = {
  34.     case Received(data) => data.utf8String.split("\n").foreach(msg => listener ! GatlingMessage(remote, msg))
  35.     case PeerClosed => {
  36.       listener ! GatlingFinished(remote)
  37.       context stop self
  38.     }
  39.   }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement