sgcWebSockets 2026.10

· Versiones
sgcWebSockets 2026.10

Ya está disponible sgcWebSockets 2026.10. Dos hilos recorren esta versión: sgcHTML ha crecido con las partes que necesita una aplicación web de negocio y que ya no tendrás que escribir a mano, y la criptografía se ha vuelto poscuántica sin añadir ni una sola librería externa.

Aplicaciones web: la parte aburrida, hecha

Sesiones, inicio de sesión y CSRF. El nuevo componente TsgcHTMLAuth y sus almacenes de sesión guardan la cookie, responden a las peticiones de inicio y cierre de sesión, cierran las sesiones inactivas y limitan los intentos de inicio de sesión fallidos. El token CSRF viaja en una etiqueta meta, htmx lo añade a cada petición por su cuenta, y el servidor rechaza cualquier envío que no lo incluya.

FAuth := TsgcHTMLAuth.Create(Self);
FAuth.SessionStore := TsgcHTMLSessionStore_Memory.Create(Self);
FAuth.CookieName := 'app_session';
FEngine.Auth := FAuth;

Rutas que se leen como rutas. Parámetros de ruta, un filtro de métodos, y acceso a las cabeceras, las cookies y el cuerpo:

with FRouter.Routes.Add do
begin
  Path := '/customers/{id}/edit';
  Methods := [hrmGet, hrmPost];
  RequireLogin := True;
  RequireRoles := 'admin,sales';
end;

Páginas que se pueden probar. DispatchDirect responde a una petición sin que haya un socket detrás, y una nueva unidad lee el HTML generado, encuentra elementos por id, clase, etiqueta o atributo y compara una página con una copia guardada, de modo que un cambio involuntario en el marcado lo detecta una prueba y no un cliente.

Navegación que se siente como una aplicación. Las páginas cambian sin una recarga completa y conservan la posición de desplazamiento y lo que el usuario estaba escribiendo, con una barra de carga, un diálogo cuando la conexión se pierde y un mensaje cuando una petición falla. Todo ello desactivado de forma predeterminada.

Las cuatro funciones destacadas

Cada una de ellas tiene su propio artículo, enlazado al final, así que aquí solo va lo que es:

Push, de dos maneras

Los server sent events ya pueden transportar las actualizaciones en lugar de un WebSocket, con repetición de lo que se perdió mientras se estaba desconectado, y funciona con el servidor HTTP normal. Web Push llega a un navegador que está cerrado. Junto con ellos llegan una bandeja de notificaciones y una tabla de preferencias, y el componente de notificaciones decide qué canal recibe cada usuario.

IA: respuestas sobre las que se puede actuar

TsgcAIChat puede pedir un JSON que siga un esquema que tú le proporciones, en OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok y Mistral, a través del nuevo método ChatJSON, que analiza la respuesta y vuelve a preguntar una vez más adjuntando el error de análisis cuando no se puede leer. El componente de chat también envía y recibe imágenes ahora, y BaseUrl ya lo respetan todos los proveedores y no solo Ollama, así que cualquiera de ellos se puede apuntar a un proxy o a una pasarela local.

Criptografía: poscuántica, en Object Pascal

ML-KEM (FIPS 203), ML-DSA (FIPS 204) y SLH-DSA (FIPS 205), encapsulación de claves híbrida X-Wing, certificados X.509 poscuánticos y autoridades de certificación, y JWT firmados con ML-DSA. Todo ello escrito en Object Pascal dentro del paquete sgcCrypto, sin ninguna librería externa, validado contra los vectores de respuesta conocida del NIST.

Sobre eso se apoya un motor TLS 1.3 nativo, también en Pascal puro: un cliente o un servidor habla TLS sin OpenSSL y sin SChannel, negociando los grupos híbridos poscuánticos de la RFC 10024, con ALPN, S N I, certificados de cliente y uso opcional del almacén de confianza del sistema operativo.

El lado clásico se ha reforzado en la misma pasada: RSA en tiempo constante y cegado, multiplicación escalar de curva elíptica en tiempo constante y Ed25519, AES y GHASH sin tablas, claves privadas importadas verificadas contra su mitad pública, y firmas DER no mínimas rechazadas.

Correcciones que merece la pena mencionar

.NET

La librería .NET mantiene el ritmo: autenticación y sesiones con un puente ClaimsPrincipal para ASP.NET Core, el enrutador, las ayudas de pruebas, la navegación SPA, el transporte SSE con un endpoint nativo, la salida estructurada, el AI Data Pack, Web Push, MCP Apps y el componente CRUD con sus adaptadores, todo con los mismos nombres de API que en Delphi.

Actualización

Todo lo nuevo es aditivo y está desactivado de forma predeterminada. Añade las nuevas unidades, reconstruye tus paquetes, y una aplicación existente se comportará exactamente igual que antes.

Las versiones completas

Míralo en vídeo

Hay un vídeo breve de esto en el canal de eSeGeCe.

¿Preguntas, comentarios o ayuda con la migración? Ponte en contacto — recibirás respuesta de las mismas personas que escribieron el código.