Skip to content
This repository has been archived by the owner on May 21, 2021. It is now read-only.

Commit

Permalink
Less crashy websockets
Browse files Browse the repository at this point in the history
  • Loading branch information
lopcode committed Apr 2, 2016
1 parent 0f48bf9 commit 24d5b3f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
4 changes: 3 additions & 1 deletion src/main/kotlin/Hopper.kt
Expand Up @@ -17,7 +17,9 @@ object Hopper {

fun broadcast(message: String) {
for (user in users.keys) {
user.remote.sendString(message)
if (user.isOpen) {
user.remote.sendString(message)
}
}
}

Expand Down
11 changes: 7 additions & 4 deletions src/main/kotlin/TestWebSocketHandler.kt
Expand Up @@ -9,18 +9,21 @@ class TestWebSocketHandler {

@OnWebSocketConnect
fun onConnect(user: Session) {
Hopper.users[user] = Hopper.userCount.andIncrement
Hopper.broadcast("user ${Hopper.userCount} connected")
val userId = Hopper.userCount.andIncrement
Hopper.users[user] = userId
Hopper.broadcast("user $userId connected")
}

@OnWebSocketClose
fun onClose(user: Session, statusCode: Int, reason: String) {
val userId = Hopper.users[user]
Hopper.users.remove(user)
Hopper.broadcast("user closed: $statusCode $reason")
Hopper.broadcast("user $userId closed: $statusCode $reason")
}

@OnWebSocketMessage
fun onMessage(user: Session, message: String) {
Hopper.broadcast("user ${Hopper.userCount} sent message: $message")
val userId = Hopper.users[user]
Hopper.broadcast("user $userId sent message: $message")
}
}

0 comments on commit 24d5b3f

Please sign in to comment.