Ether Framework
Unified API docs for Ether modules
Loading...
Searching...
No Matches
WebSocketCloseStatus.java
Go to the documentation of this file.
1package dev.rafex.ether.websocket.core;
2
3/*-
4 * #%L
5 * ether-websocket-core
6 * %%
7 * Copyright (C) 2025 - 2026 Raúl Eduardo González Argote
8 * %%
9 * Permission is hereby granted, free of charge, to any person obtaining a copy
10 * of this software and associated documentation files (the "Software"), to deal
11 * in the Software without restriction, including without limitation the rights
12 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 * copies of the Software, and to permit persons to whom the Software is
14 * furnished to do so, subject to the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be included in
17 * all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 * THE SOFTWARE.
26 * #L%
27 */
28
29/**
30 * Representa un estado de cierre de una conexión WebSocket conforme a la especificación RFC 6455.
31 * Cada estado se compone de un código numérico y una razón descriptiva.
32 */
33public record WebSocketCloseStatus(int code, String reason) {
34
35 /** Cierre normal: la conexión se completó con éxito. */
36 public static final WebSocketCloseStatus NORMAL = new WebSocketCloseStatus(1000, "normal");
37 /** El punto de partida se aleja (el servidor se apaga o el cliente navega fuera). */
38 public static final WebSocketCloseStatus GOING_AWAY = new WebSocketCloseStatus(1001, "going_away");
39 /** La conexión se cierra debido a una violación del protocolo. */
40 public static final WebSocketCloseStatus PROTOCOL_ERROR = new WebSocketCloseStatus(1002, "protocol_error");
41 /** Se recibió un tipo de mensaje que no es aceptable. */
42 public static final WebSocketCloseStatus NOT_ACCEPTABLE = new WebSocketCloseStatus(1003, "not_acceptable");
43 /** El servidor encontró un error inesperado que impide continuar. */
44 public static final WebSocketCloseStatus SERVER_ERROR = new WebSocketCloseStatus(1011, "server_error");
45
47 reason = reason == null ? "" : reason;
48 }
49
50 /**
51 * Crea un estado de cierre con el código y la razón especificados.
52 *
53 * @param code código de cierre numérico según RFC 6455
54 * @param reason descripción legible del motivo de cierre; se normaliza a cadena vacía si es {@code null}
55 * @return nueva instancia de {@code WebSocketCloseStatus}
56 */
57 public static WebSocketCloseStatus of(final int code, final String reason) {
58 return new WebSocketCloseStatus(code, reason);
59 }
60}
record WebSocketCloseStatus(int code, String reason)
Representa un estado de cierre de una conexión WebSocket conforme a la especificación RFC 6455.