| ws_handler |
function |
go |
infra |
1.0.0 |
impure |
func WSHandler(hub *WSHub, origins []string) http.HandlerFunc |
Retorna un http.HandlerFunc que upgradea la conexion HTTP a WebSocket via WSUpgrader, crea un WSClient con ID hex aleatorio, lo registra en el hub y lanza readPump y writePump como goroutines. La readPump bloquea el handler para mantener la request viva. Al desconectar (error de I/O o canal cerrado) se desregistra el cliente y se cierra la conexion limpiamente. |
| websocket |
| handler |
| http |
| server |
| hub |
| infra |
| realtime |
|
|
| WSHub_go_infra |
| WSClient_go_infra |
|
|
false |
error_go_core |
| context |
| crypto/rand |
| encoding/hex |
| net/http |
| time |
| nhooyr.io/websocket |
|
| name |
desc |
| hub |
*WSHub donde se registran los clientes que se conecten via este handler. Debe estar corriendo (hub.Run() lanzado en goroutine). |
|
| name |
desc |
| origins |
lista de patrones de origen permitidos para el upgrade. Pasa directamente a WSUpgrader. Para dev: `["*"]`. Para prod: lista explicita. |
|
|
http.HandlerFunc lista para montarse en una ruta GET. Cada conexion entrante crea un cliente nuevo en el hub. |
true |
| upgradea conexion y registra cliente en hub |
| broadcast del hub llega al cliente conectado |
| desregistra cliente al desconectar |
| multiples clientes reciben el broadcast |
|
functions/infra/ws_test.go |
functions/infra/ws_handler.go |