Aqui está a lista completa de novos recursos e correções de bugs incluídos no sgcWebSockets 4.5.0:
[+] : Novo componente TsgcSTUNServer, implementa o protocolo STUN Server fornecendo um serviço para descobrir o endereço IP mapeado e o número de porta.
[+] : Novo componente TsgcSTUNClient, implementa o protocolo STUN Client.
[+] : Novo demo que mostra como usar STUN Server e Client, localizado na pasta "35.P2P\02.STUN".
[+] : Novo componente TsgcWSAPI_FTX, componente cliente com suporte a negociação de criptomoedas no FTX Broker. Suporta:
- Canais públicos e privados via WebSocket.
- Endpoints públicos e privados via REST.
[+] : Novas propriedades "BoundPortMin" e "BoundPortMax" no TsgcWebSocketClient, permitem definir a porta local mínima e máxima usada pelo cliente WebSocket.
[+] : Nova propriedade "LingerState" no TsgcWebSocketClient, permite redefinir uma conexão de socket onde LingerState = 0. Por padrão o valor é -1, o que significa que a conexão será encerrada normalmente.
[+] : Modificado o método Publish do Google PubSub, agora tem um novo parâmetro "aOrderingKey" onde você pode definir o nome dos atributos que funcionam como chave.
[+] : Aprimorado HTTP.SYS Server: se Watchdog.Monitor estiver habilitado e o servidor usar SSL, o cliente monitor usa SChannel em vez de OpenSSL.
[+] : Aprimorado Binance API, nova propriedade "TestNet": se habilitada, conecta à conta demo do Binance.
[+] : Aprimorado Binance Spot API, novos métodos: CancelAllOpenOrders, PlaceMarketOrder, PlaceLimitOrder e PlaceStopOrder.
[+] : Aprimorado Binance Futures API, novos métodos: PlaceMarketOrder, PlaceLimitOrder e PlaceStopOrder.
[+] : Aprimorado WinHTTP WebSocket Client, implementados os métodos Connect e Disconnect para aguardar até que o cliente esteja conectado/desconectado do servidor.
[+] : Aprimorado WinHTTP WebSocket Client, implementados os métodos Start e Stop, que conectam/desconectam do servidor usando uma thread secundária, evitando o bloqueio da thread principal.
[+] : Aprimorado Telegram API, o método GetSupergroupMembers agora pode ser filtrado por Administrator, Bots, Contacts...
[+] : Aprimorado OAuth2 Server, novo método "AddToken" permite recuperar tokens emitidos quando o servidor OAuth2 é reiniciado.
[*] : Corrigido bug Google PubSub: se as mensagens publicadas tinham atributos, eles não recebiam aspas duplas.
[*] : Corrigido bug HTTP.SYS Server: os CustomHeaders definidos na resposta HTTP não eram incluídos nos cabeçalhos da resposta.
[*] : Corrigido bug HTTP.SYS Server: o ContentStream não era incluído no corpo da resposta HTTP.
[*] : Corrigido bug quando Options.RaiseDisconnectException era true: o evento era disparado no contexto da thread de conexão mesmo se notifyEvents <> neNoSync.
[*] : Corrigido bug ao compilar sob FPC e ARM: havia um bloqueio de thread usando a versão mais recente do Indy.
[*] : Corrigido bug HTTP.SYS Server: LogFile.FileName não era editável em tempo de design.
[*] : Corrigido bug HTTP.SYS Server: vazamento de memória quando uma conexão era desconectada.
[*] : Corrigido bug WinHTTP WebSocket Client (asynchronous = true): o tamanho do buffer era fixo em vez de usar a propriedade ReceiveBufferSize.
[*] : Corrigido bug WinHTTP WebSocket Client (asynchronous = true): se ocorria um erro durante o handshake WebSocket, uma exceção não tratada era disparada.
[*] : Corrigido bug quando TsgcWebSocketClient tinha alguma API vinculada: se o evento interno OnDisconnect gerava uma exceção durante o processamento, o evento não era chamado.
[*] : Corrigido bug Telegram API quando Document.FileName continha caracteres UTF-8.
[/] : Renomeada a propriedade TsgcWebResponseHTTPAPI.CustomHeader para TsgcWebResponseHTTPAPI.CustomHeaders.
[/] : Modificada a função PlaceStopOrder do Coinbase API Client.
[/] : Modificado o valor de Book Depth de "bde15" para "bde20".
[/] : Renomeada a função "GetApp" do OAuth2 Server para "GetAppByClientId".
