New method lo register SubProtocol in an easy way, implementing new features for Server based on Microsofot HTTP API 2.0 for windows and IOCP and some bugs and fixes.


 [+] : Overloaded method to register subprotocols at runtime by name. Events are raised on Server/Client context in this case.

 [+] : Added New Methods in sgcWebSockets library to send binary messages using TBytes as parameter.

 [+] : Added support for Socket.IO API 2.*

 [+] : Updated Socket.IO to latest online demo.

 [+] : Added RegisteredURLs to TsgcWebSocketServer_HTTPAPI, allows to register which URLs will be handled by sgcWebSockets.


 [*] : Fixed Warnings compiling sgcWebSockets library with latest compiler.

 [*] : Fixed Bug compiling CBuilder with method SetPort.

 [*] : Fixed several bugs for TsgcWebSocketServer_HTTPAPI

There is a new client protocol for WAMP 2.0, now you can connect to WAMP 2.0 servers like Poloniex.

WAMP is an open standard WebSocket subprotocol that provides two application messaging patterns in one unified protocol: Remote Procedure Calls + Publish & Subscribe.


Full List of changes:

 [+] : New Protocol Component TsgcWSPClient_WAMP2, implements WAMP 2.0 protocol.

 [+] : Added support for Server Proxy Sub-Protocols.


 [*] : When connection is IPv6, built-in sgcWebSockets.html was not showed properly.

 [*] : Fixed Bug in TsgcWebSocketServerHTTP on Linux64, files inside DocumentRoot where not found.

 [*] : Fixed Bug in Delphi7, error compiling MQTT Client.

 [*] : Fixed Bug MQTT client, heartbeat only work if client enables it.

 [*] : Fixed Bug MQTT client, ClientIdentifier was ignored if CleanSession was true.

 [*] : Small fixes to allow Delphi7 compile latest Indy version.

 [*] : Fixed Bug MQTT client, dirty messages when subscribing with mtqsAtLeastOnce.

 [*] : Fixed Library Free version.

 [*] : Fixed Bug Dataset Protocol, LargeInteger was not properly decoded when Base64 was enabled.

 [*] : Fixed Bug if handshake message was fragmented, connection was closed.


Welcome to Linux compiler!

With 4.1.0 version, linux compiler is supported so you can build your projects in linux, simple example:

program sgcWebSockets_linux;


{$R *.res}


  System.SysUtils, sgcWebSocket;


  oServer: TsgcWebSocketServer;



    oServer := TsgcWebSocketServer.Create(nil);

    oServer.Port := 5000;

    oServer.Active := True;

    while oServer.Active do



    on E: Exception do

      Writeln(E.ClassName, ': ', E.Message);





Of course, Rad Studio 10.2 is full supported, so you can upgrade your projects to latest version.

MQTT client has been improved with new methods and there is a new demo showing main features.

Full list of changes:


 [+] : Added support for Rad Studio 10.2 Tokyo.

 [+] : Added support for Linux compiler.

 [+] : MQTT client, added subscribe method.

 [+] : MQTT client, added unsubscribe method.

 [+] : MQTT client, added publish method.

 [+] : MQTT client, added Authentication property, allows to set user and password to authenticate against MQTT Server.

 [+] : MQTT client, added HeartBeat property, keeps alive connection.

 [+] : MQTT client, added LastWillTestament property, when client disconnects, sends a message to other connected clients.

 [+] : New Property "NotifyDeletes" in Dataset Server Protocol, if enabled (by default) broadcast deleted record to all clients.

 [+] : New Method "BroadcastRecord" in Dataset Server Protocol, sends dataset record values to all clients.

 [+] : New Method "MetaData" in Dataset Server Protocol, sends metadata info to a single client.

 [+] : New Method "Synchronize" in Dataset Server Protocol, sends dataset record values to a single client.


 [*] : Fixed Bug ReadTimeout and ConnectionTimeout in client component.

 [*] : Added Guid property to Client File Protocol.

 [*] : Fixed Bug Invalid Character when trying to access to built-in javascript libraries.

 [*] : Fixed Bug File Protocol when BufferSize was set to zero, file was not saved properly.

 [*] : Fixed Memory Leaks on NextGen compiler.

 [*] : Fixed WebRTC Chrome console errors.



sgcWebSockets 4.0.2 introduces a new client for MQTT protocol. It's designed for lightweight publish/subscribe messaging transport and is usually used in IoT (Internet of Things).

Full List

 [+] : New Component TsgcWSPClient_MQTT, implements MQTT protocol, it's still beta and next versions will support more methods.

 [+] : MQTT client, added connect method.

 [+] : MQTT client, added connack method.

 [+] : MQTT client, added pingreq method.

 [+] : MQTT client, added pingresp method.

 [+] : MQTT client, added disconnect method.


 [*] : Fixed Bug Javascript SGC Protocol, when calling rpc method with non numeric parameters.

 [*] : Fixed Access Violation on client components when hard socket disconnect.

 [*] : Fixed Bug Dataset Protocol, synchronization didn't search if record exists.

 [*] : Fixed Bug when client disconnects, sometimes OnDisconnect event was not raised.

 [*] : Fixed Bug Dataset Protocol, parsing error in float fields.


In this version, the main changes affect to WinHTTP client, which now supports:

  1. Asynchronous requests: use the WinHTTP functions asynchronously. By default, all WinHTTP functions that use the returned HINTERNET handle are performed synchronously.
  2. Proxy support: now connections can use http proxies.


Full List

  [+] : WinHTTP client, added proxy support.

 [+] : WinHTTP client, added asynchronous request support.

 [+] : WinHTTP client, implemented query close status.


 [*] : Fixed Bug using OnBinary event in C#, added a new event to handle binary data using array of bytes.

 [*] : Fixed messages when compiling: unit '%s' implicitly imported into package '%s'

 [*] : Fixed Memory Leaks websocket server.

 [*] : Fixed Memory Leak TsgcWSClient.

 [*] : Fixed Bug, disconnect event was not raised in iOS / Android.

 [*] : Fixed Bug in WriteData method from protocol components.

 [*] : Fixed Bug, added QueueOptions to published properties of client.

 [*] : Fixed Bug, Access violation when Server.Active := False and SSL enabled.

 [*] : Fixed Bug, Access violation when Client.Active := False and SSL enabled.

 [*] : Fixed Bug, when RaiseDisconnectExceptions is not enabled, some exceptions were not catched.