#WsBefore
O app.wsBefore adiciona um handler que executa antes de um WebSocket handler. Você pode ter vários before-handlers como um WebSocket endpoint, e todos os eventos são suportados.
- Java
- Kotlin
app.wsBefore(ws -> {
// runs before all WebSocket requests
});
app.wsBefore("/path/*", ws -> {
// runs before websocket requests to /path/*
});
app.wsBefore { ws ->
// runs before all WebSocket requests
}
app.wsBefore("/path/*") { ws ->
// runs before websocket requests to /path/*
}
#WsEndpoint
Um WebSocket endpoint é declarado com app.ws(path, handler). WebSocket handlers requerem um único paths.
- Java
- Kotlin
app.ws("/websocket/:path", ws -> {
ws.onConnect(ctx -> System.out.println("Connected"));
ws.onMessage(ctx -> {
User user = ctx.message(User.class); // convert from json
ctx.send(user); // convert to json and send back
});
ws.onBinaryMessage(ctx -> System.out.println("Message"))
ws.onClose(ctx -> System.out.println("Closed"));
ws.onError(ctx -> System.out.println("Errored"));
});
app.ws("/websocket/:path") { ws ->
ws.onConnect { ctx -> println("Connected") }
ws.onMessage { ctx ->
val user = ctx.message<User>(); // convert from json
ctx.send(user); // convert to json and send back
}
ws.onBinaryMessage { ctx -> println("Message") }
ws.onClose { ctx -> println("Closed") }
ws.onError { ctx -> println("Errored") }
}
#WsAfter
O app.wsAfter adiciona um handler que executa depois de um WebSocket handler. Você pode ter vários after-handlers como um WebSocket endpoint, e todos os eventos são suportados.
- Java
- Kotlin
app.wsAfter(ws -> {
// runs after all WebSocket requests
});
app.wsAfter("/path/*", ws -> {
// runs after websocket requests to /path/*
});
app.wsAfter { ws ->
// runs after all WebSocket requests
}
app.wsAfter("/path/:path") { ws ->
// runs after websocket requests to /path/*
}
#WsContext
O objeto wsContext fornece para você tudo o que você precisa para manipular um websocket-request. Ele contém o básico do websocket session e servlet-request, e métodos convenientes para mandar mensagens para o cliente.
ctx.matchedPath() // get the path used to match this request, ex "/path/:param"
ctx.send(object) // send an object as JSON (string message)
ctx.send(string) // send a string message
ctx.send(byteBuffer) // send a bytebuffer message
ctx.queryString() // get the query string
ctx.queryParamMap() // get a map of the query parameters
ctx.queryParams(key) // get query parameters by key
ctx.queryParam(key) // get query parameter by key
ctx.queryParam(key, default) // get query parameter (or default value)
ctx.queryParam(key, class) // get query parameter as class
ctx.pathParamMap() // get path parameter map
ctx.pathParam(key) // get path parameter
ctx.pathParam(key, class) // get path parameter as class
ctx.host() // get the host
ctx.header(key) // get request header
ctx.headerMap() // get a map of the request headers
ctx.cookie(key) // get request cookie
ctx.cookieMap() // get a map of all request cookies
ctx.attribute(key, value) // set request attribute
ctx.attribute(key) // get request attribute
ctx.attributeMap() // get a map of request attributes
ctx.sessionAttribute(key) // get request session attribute (from when WebSocket upgrade was performed)
ctx.sessionAttributeMap() // get a map of session attributes (from when WebSocket upgrade was performed)





Deixe um comentário