What do we want? - Future[Either[AuthFailure, AuthSuccess]] - Future[Option[AuthSuccess]] - Future[AuthSuccess]
What do we want? - Future[Either[AuthFailure, AuthSuccess]] - Future[Option[AuthSuccess]] - Future[AuthSuccess]
req
a successful authentication result, or fails with a NoSuchElementException if authentication fails
Implement this like routes.YourController.openSocket()
.
Implement this like routes.YourController.openSocket()
.
TODO: Find the best way to represent a concurrent collection.
TODO: Find the best way to represent a concurrent collection. Both actors and scala-stm are heavy artillery and error-prone.
Called when a client has connected.
Called when a client has connected.
the client channel, can be used to push messages to the client
Called when a client has disconnected.
Called when a client has disconnected.
the disconnected client channel
Called when the client sends a message to the server.
Called when the client sends a message to the server.
the message
the client that sent the message
Sends message
to each connection authenticated as user
.
Sends message
to each connection authenticated as user
.
true if at least one user
existed and the message was sent, false otherwise
Opens a WebSocket connection.
Opens a WebSocket connection.
This is the controller for requests to ws://... or wss://... URIs.
a websocket connection using messages of type Message
Instead of returning an Unauthorized result upon authentication failures, this opens then immediately closes a connection connections, sends no messages and ignores any messages.
Instead of returning an Unauthorized result upon authentication failures, this opens then immediately closes a connection connections, sends no messages and ignores any messages.
The Java-WebSocket client library hangs if an Unauthorized result is returned after a websocket connection attempt.