summaryrefslogtreecommitdiff
path: root/example/websockets4/app/src/Websockets4.scala
diff options
context:
space:
mode:
Diffstat (limited to 'example/websockets4/app/src/Websockets4.scala')
-rw-r--r--example/websockets4/app/src/Websockets4.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/example/websockets4/app/src/Websockets4.scala b/example/websockets4/app/src/Websockets4.scala
new file mode 100644
index 0000000..f275746
--- /dev/null
+++ b/example/websockets4/app/src/Websockets4.scala
@@ -0,0 +1,22 @@
+package app
+
+case class Websockets4()(implicit val log: cask.Logger) extends cask.Routes{
+ @cask.decorators.compress // make sure compress decorator passes non-requests through correctly
+ @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())
+}