sgcWebSockets 4.4.4

· Versiones

Estas son las funcionalidades incluidas en sgcWebSockets 4.4.4

[+] : Nuevo componente TsgcHTTPGoogleCloud_Calendar_Client, permite usar la API V3 de Google Calendar: obtener calendarios, eventos, sincronizar con tu propio calendario...
[+] : Nueva demo GoogleCalendar que muestra las principales características del cliente de Google Calendar.
[+] : Nuevo método "PublishAndWait" en el cliente MQTT, permite publicar un mensaje con mtqsAtLeastOnce o mtqsExactlyOnce y esperar hasta que el servidor lo procese.
[+] : Nuevo método "SendAndWait_DeviceToCloud" en el cliente Azure IoT MQTT, envía un mensaje del dispositivo a la nube y espera hasta que el servidor procese la petición.
[+] : Nueva propiedad Authentication en TsgcHTTP2Client, permite enviar peticiones HTTP/2 usando OAuth2 como autenticación.
[+] : Mejorado el servidor HTTP/2: ahora se admiten ping y heartbeat.
[+] : Mejorado el cliente Google PubSub: los nuevos eventos "OnAuthToken" y "OnAuthTokenError" permiten gestionar el flujo de eventos OAuth2.
[+] : Mejorado el cliente Google PubSub: el nuevo método "RefreshToken" permite reconectarse a una sesión OAuth2.
[+] : Mejorado el cliente Telegram: añadido soporte para proxies HTTP, MTProto y Socks5. Nuevos métodos para añadir proxies, eliminar, habilitar, deshabilitar...
[+] : Nuevo método "Restart" en los componentes servidor, reinicia el servidor en un hilo secundario.
[+] : Mejorado WatchDog en los componentes servidor: nueva propiedad Monitor; si está activa, un cliente intenta conectarse al servidor y, si falla tras el TimeOut configurado, el servidor se reinicia automáticamente.

[*] : Corregido error en TsgcWebSocketClient con TLSOptions.IOHandler = iohSChannel: al cerrar la conexión se mostraba una excepción 10004.
[*] : Corregido error en TsgcWebSocketClient con TLSOptions.IOHandler = iohSChannel: al destruir TsgcWebSocketClient con la conexión activa se producía un thread-lock.
[*] : Corregido error en el cliente Azure IoT MQTT: OnMQTTPubAck no se invocaba cuando el cliente recibía un acknowledgement del servidor.
[*] : Corregido error en el servidor: las conexiones no se cerraban si OriginsAllowed no coincidía con el WebSocket origin del cliente.
[*] : Corregido error en el código JavaScript de ServerSentEvent: contenía texto inválido.
[*] : Corregido error al compilar la versión Custom Indy: sgcIdStackVCLPosix utilizaba IdCTypes en lugar de sgcIdCTypes.
[*] : Corregido error en HeartBeat: si había una excepción al enviar un ping, la excepción no se capturaba y se mostraba al usuario.
[*] : Corregido error en el cliente MQTT: si había una excepción al reenviar un mensaje con Qos <> mtqsAtLeastOnce, la excepción no se capturaba y se mostraba al usuario.
[*] : Corregido error en el cliente MQTT: al publicar un Stream con Qos <> mtqsAtLeastOnce y no recibir un acknowledgement del servidor antes del timeout, al reenviar el mensaje el payload estaba vacío.
[*] : Corregida fuga de memoria en el componente servidor cuando HTTP/2 está activado.
[*] : Corregido error en HTTP/2 cuando el otro peer enviaba una actualización de ajustes InitialWindowSize.
[*] : Corregido error en el cliente HTTP/2: si durante una petición HTTP síncrona se producía una desconexión, el cliente no dejaba de esperar un resultado.
[*] : Corregido error en el servidor HTTP/2: si SETTINGS_INITIAL_WINDOW_SIZE cambiaba después de HEADERS, el WindowSize no se ajustaba correctamente.
[*] : Corregido error en la API Spot User Stream de Binance: si había un error al eliminar la ListenKey interna tras una desconexión, el campo no se limpiaba y no se podía reconectar.
[*] : Corregido error en WatchDog de los componentes servidor: si el servidor se detenía manualmente, el WatchDog intentaba arrancarlo de nuevo en lugar de detenerlo.
[*] : Corregido error al compilar sgcJSON_XSuperObject y sgcJSON_System con Delphi 10.4.
[*] : Corregido error en los servidores Indy WebSocket: si Options.ReadTimeOut = 0, el servidor consumía toda la CPU. Ahora el valor mínimo para ReadTimeOut = 1.
[*] : Corregido error en los servidores Indy WebSocket: si el servidor enviaba un paquete close y el otro peer no lo recibía/procesaba, la conexión consumía toda la CPU.

[/] : Los métodos asíncronos HTTP/2 de TsgcHTTP2Client se han renombrado a GetAsync, PostAsync, PutAsync...
[/] : Las demos ahora están agrupadas por categorías.