summaryrefslogtreecommitdiff
path: root/example/websockets4/app/src/Websockets4.scala
blob: 83c4f980a3b8c685cced99c026e44738fafeea4f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package app

case class Websockets4()(implicit val log: cask.Logger) extends cask.Routes{
  // make sure compress decorator passes non-requests through correctly
  override def decorators = Seq(new cask.decorators.compress())
  @cask.websocket("/connect/:userName")
  def showUserProfile(userName: String): cask.WebsocketResult = {
    if (userName != "haoyi") cask.Response("", statusCode = 403)
    else cask.WsHandler { channel =>
      cask.WsActor {
        case cask.Ws.Text("") => channel.send(cask.Ws.Close())
        case cask.Ws.Text(data) =>
          channel.send(cask.Ws.Text(userName + " " + data))
      }
    }
  }

  initialize()
}

object Websockets4Main extends cask.Main{
  val allRoutes = Seq(Websockets4())
}