2
Имея простой Akka HTTP сервер:Остановка HTTP сервер Akka
package org.package.some
import akka.actor.{IOManager, IO, Actor}
import java.net.InetSocketAddress
class HttpServerActor extends Actor {
val state = IO.IterateeRef.Map.async[IO.Handle]()(context.dispatcher)
override def preStart() {
IOManager(context.system) listen new InetSocketAddress(8000)
}
def receive = {
case IO.NewClient(server) =>
val socket = server.accept()
state(socket) flatMap (_ => RequestProcessor.processRequest(socket))
case IO.Read(socket, bytes) =>
state(socket)(IO Chunk bytes)
case IO.Closed(socket, cause) =>
state(socket)(IO EOF None)
state -= socket
case "STOP" =>
println("WHAT'S HERE??")
}
}
Как бы один остановить сервер, то есть гнездо близко сервера на порт 8000?
Просто убийство актера не имеет никакого эффекта: остается строка в netstat -a | grep 8000
, в которой говорится, что порт все еще прослушивается.
Спасибо! ('SocketHandle' следует заменить на' ServerHandle') – nab
Готово. Копировать/вставить из неправильного метода :-) – leedm777