Application.scala 978 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package controllers
  2. import play.api._
  3. import play.api.mvc._
  4. import play.api.libs.json._
  5. import play.api.libs.iteratee._
  6. import models._
  7. import akka.actor._
  8. import scala.concurrent.duration._
  9. object Application extends Controller {
  10. /**
  11. * Just display the home page.
  12. */
  13. def index = Action { implicit request =>
  14. Ok(views.html.index())
  15. }
  16. /**
  17. * Display the chat room page.
  18. */
  19. def chatRoom(username: Option[String]) = Action { implicit request =>
  20. username.filterNot(_.isEmpty).map { username =>
  21. Ok(views.html.chatRoom(username))
  22. }.getOrElse {
  23. Redirect(routes.Application.index).flashing(
  24. "error" -> "Please choose a valid username."
  25. )
  26. }
  27. }
  28. def chatRoomJs(username: String) = Action { implicit request =>
  29. Ok(views.js.chatRoom(username))
  30. }
  31. /**
  32. * Handles the chat websocket.
  33. */
  34. def chat(username: String) = WebSocket.async[JsValue] { request =>
  35. ChatRoom.join(username)
  36. }
  37. }