Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package actors
- import akka.actor.{ActorRef, Actor, Props}
- import akka.io.{IO, Tcp}
- import java.net.InetSocketAddress
- class Server(listener: ActorRef) extends Actor {
- import Tcp._
- import context.system
- IO(Tcp) ! Bind(self, new InetSocketAddress("localhost", 9090))
- def receive = {
- case b@Bound(localAddress) =>
- // do some logging or setup ...
- case CommandFailed(_: Bind) => context stop self
- case c@Tcp.Connected(remote, local) =>
- listener ! GatlingConnected(c.remoteAddress.toString)
- println("Connected: " + c.remoteAddress)
- val handler = context.actorOf(Props(classOf[ServerHandler], listener, c.remoteAddress.toString))
- val connection = sender
- connection ! Register(handler)
- }
- }
- class ServerHandler(listener: ActorRef, remote: String) extends Actor {
- import Tcp._
- override def receive: Receive = {
- case Received(data) => data.utf8String.split("\n").foreach(msg => listener ! GatlingMessage(remote, msg))
- case PeerClosed => {
- listener ! GatlingFinished(remote)
- context stop self
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement