Files
KnockOutWhist-Web/knockoutwhistweb/app/controllers/WebsocketController.scala
LQ63 09cc96141d feat(ui): Websocket
Added simple websocket. Serverside websocket logic isnt in the usersession
2025-11-22 18:33:49 +01:00

30 lines
816 B
Scala

package controllers
import actor.KnockOutWebSocketActor
import org.apache.pekko.actor.{ActorRef, ActorSystem, Props}
import org.apache.pekko.stream.Materializer
import play.api.*
import play.api.libs.streams.ActorFlow
import play.api.mvc.*
import javax.inject.*
@Singleton
class WebsocketController @Inject()(
cc: ControllerComponents,
)(implicit system: ActorSystem, mat: Materializer) extends AbstractController(cc) {
object KnockOutWebSocketActorFactory {
def create(out: ActorRef) = {
Props(new KnockOutWebSocketActor(out))
}
}
def socket() = WebSocket.accept[String, String] { request =>
ActorFlow.actorRef { out =>
println("Connect received")
KnockOutWebSocketActorFactory.create(out)
}
}
}