This item is available via subscriptions only

WebSocket and HTTP Support

sgcWebSockets includes client and server-side implementations of the WebSocket protocol (RFC 6455). HTTP/s is also full supported.


SSL/TLS for Security

Your messages are secure using our SSL/TLS implementation. Widest compatibility via support for modern TLS 1.3 and TLS 1.2


Protocols and APIs

Several protocols are supported: MQTT, STOMP, WEBRTC, WAMP... Built-in protocols support Transactions, Datasets, QoS, big file transfers and more. APIs supported for third-parties like Pusher, Bitfinex...


Cross-platform

Share your code using our WebSockets library for your Delphi , .NET and CBuilder Applications. Includes Server, Clients and serveral protocols for building and connecting to WebSocket applications.


Delphi WebSocket Client

eSeGeCe provides a fully featured WebSocket component that allows to connect to any WebSocket Server using the latest TLS versions, OAuth protocol, JWT Tokens and much more.


Delphi HTTP Client

sgcWebSockets supports latest HTTP protocol, the HTTP/2 version, which highly improves the performance of HTTP connections. The component is built using 100% native Delphi code without external dependencies. HTTP/1 protocol is supported too and includes the latest TLS versions for secure connections.


Delphi WebSocket Server

There are 2 available servers: one based on Indy library with support for WebSocket, HTTP, SSE, OAuth2, JWT, plain TCP connections... and another server based on HTTP.SYS Microsoft API which can handle thousands of concurrents connections with support for HTTP and WebSocket without external dependencies.


Delphi HTTP Server

Servers support HTTPs protocol (HTTP/1 and HTTP/2) including the latest Authentication protocols like OAuth2 or JWT. So you can build your REST server and provide OAuth2 Authentication for client requests. DataSnap server can be replaced by sgcWebSockets servers to improve stability, reliability and modernize the Authentication protocols adding OAuth2 and JWT.


Delphi Crypto Trading

Several Crypto Brokers are publishing WebSocket and REST APIs to allow custom trading through their platforms. sgcWebSockets fully supports real-time data using websocket streams or Trading private accounts through the REST API on several platforms like Binance, Coinbase Pro or Kraken.


Delphi Cloud Components

sgcWebSockets provide solutions for working cloud providers like Amazon AWS, Microsoft Azure or Google Cloud. There are clients for IoT protocols, Amazon SQS, Google PubSub and more.


How Create VCL WebSocket Client

Example: open a websocket connection to echo.websocket.org

  1. Create a new VCL Forms Application 

  2. Drop a TsgcWebSocketClient in a Form and configure Host and Port Properties to connect to Server.

    sgcWebSocketClient1.Host := 'echo.websocket.org';

    sgcWebSocketClient1.Port := 80;

  3. Drop a TButton in a Form, Double Click and type this code:

   sgcWebSocketClient1.Active := True;

  4. Drop a TButton in a Form, Double Click and type this code:

   sgcWebSocketClient1.WriteData('Hello Server From VCL Client');

  5. Build Project and that's all, you have configured a basic WebSocket Client.





-------------------------------------------------------------------------------------------------------------------------------------------------
Installing sgcWebSockets in Rad Studio 7 - XE8 - 11 Alexandria
-------------------------------------------------------------------------------------------------------------------------------------------------

1) Unzip the files included into a directory {$DIR}

2) Add the directory where the files are unzipped {$DIR} to the Rad Studio library path
   under Tools, Environment options, Directories

   a) All Rad Studio Versions:
   Add the directory {$DIR}\source to the library path


   b) For specific Rad Studio version
   Rad Studio 7        : Add the directory {$DIR}\libD7 to the library path
   Rad Studio 2007     : Add the directory {$DIR}\libD2007 to the library path
   Rad Studio 2009     : Add the directory {$DIR}\libD2009 to the library path
   Rad Studio 2010     : Add the directory {$DIR}\libD2010 to the library path
   Rad Studio XE       : Add the directory {$DIR}\libDXE   to the library path
   Rad Studio XE2      : Add the directory {$DIR}\libDXE2\$(Platform)  to the library path
   Rad Studio XE3      : Add the directory {$DIR}\libDXE3\$(Platform) to the library path
   Rad Studio XE4      : Add the directory {$DIR}\libDXE4\$(Platform) to the library path
   Rad Studio XE5      : Add the directory {$DIR}\libDXE5\$(Platform) to the library path
   Rad Studio XE6      : Add the directory {$DIR}\libDXE6\$(Platform) to the library path
   Rad Studio XE7      : Add the directory {$DIR}\libDXE7\$(Platform) to the library path
   Rad Studio XE8      : Add the directory {$DIR}\libDXE8\$(Platform) to the library path
   Rad Studio 10       : Add the directory {$DIR}\libD10\$(Platform) to the library path
   Rad Studio 10.1     : Add the directory {$DIR}\libD10_1\$(Platform) to the library path
   Rad Studio 10.2     : Add the directory {$DIR}\libD10_2\$(Platform) to the library path
   Rad Studio 10.3     : Add the directory {$DIR}\libD10_3\$(Platform) to the library path
   Rad Studio 10.4     : Add the directory {$DIR}\libD10_4\$(Platform) to the library path
   Rad Studio 11       : Add the directory {$DIR}\libD11\$(Platform) to the library path


3) Choose : File, Open and browse for the correct Packages\sgcWebSockets.groupproj
   (First compile sgcWebSocketsX.dpk and then install dclsgcWebSocketsX.dpk)
   
   packages files for Rad Studio:

   sgcWebSocketsD7.bpg              : Delphi 7
   sgcWebSocketsD2007.groupproj     : Delphi 2007
   sgcWebSocketsD2009.groupproj     : Delphi 2009
   sgcWebSocketsD2010.groupproj     : Delphi 2010
   sgcWebSocketsDXE.groupproj       : Delphi XE
   sgcWebSocketsDXE2.groupproj      : Delphi XE2
   sgcWebSocketsDXE3.groupproj      : Delphi XE3
   sgcWebSocketsDXE4.groupproj      : Delphi XE4
   sgcWebSocketsDXE5.groupproj      : Delphi XE5
   sgcWebSocketsDXE6.groupproj      : Delphi XE6
   sgcWebSocketsDXE7.groupproj      : Delphi XE7
   sgcWebSocketsDXE8.groupproj      : Delphi XE8
   sgcWebSocketsD10.groupproj       : Delphi 10
   sgcWebSocketsD10_1.groupproj     : Delphi 10.1
   sgcWebSocketsD10_2.groupproj     : Delphi 10.2
   sgcWebSocketsD10_3.groupproj     : Delphi 10.3
   sgcWebSocketsD10_4.groupproj     : Delphi 10.4
   sgcWebSocketsD11.groupproj       : Delphi 11




-------------------------------------------------------------------------------------------------------------------------------------------------
Installing sgcWebSockets in Delphi(Only) 7 - XE8 - 11 Alexandria
-------------------------------------------------------------------------------------------------------------------------------------------------

1) Unzip the files included into a directory {$DIR}

2) Add the directory where the files are unzipped {$DIR} to the Delphi library path
   under Tools, Environment options, Directories

   a) All Delphi Versions:
   Add the directory {$DIR}\source to the library path


   b) For specific Delphi version
   Delphi 7        : Add the directory {$DIR}\libD7 to the library path
   Delphi 2007     : Add the directory {$DIR}\libD2007 to the library path
   Delphi 2009     : Add the directory {$DIR}\libD2009 to the library path
   Delphi 2010     : Add the directory {$DIR}\libD2010 to the library path
   Delphi XE       : Add the directory {$DIR}\libDXE   to the library path
   Delphi XE2      : Add the directory {$DIR}\libDXE2\$(Platform)  to the library path
   Delphi XE3      : Add the directory {$DIR}\libDXE3\$(Platform) to the library path
   Delphi XE4      : Add the directory {$DIR}\libDXE4\$(Platform) to the library path
   Delphi XE5      : Add the directory {$DIR}\libDXE5\$(Platform) to the library path
   Delphi XE6      : Add the directory {$DIR}\libDXE6\$(Platform) to the library path
   Delphi XE7      : Add the directory {$DIR}\libDXE7\$(Platform) to the library path
   Delphi XE8      : Add the directory {$DIR}\libDXE8\$(Platform) to the library path
   Delphi 10       : Add the directory {$DIR}\libD10\$(Platform) to the library path
   Delphi 10.1     : Add the directory {$DIR}\libD10_1\$(Platform) to the library path
   Delphi 10.2     : Add the directory {$DIR}\libD10_2\$(Platform) to the library path
   Delphi 10.3     : Add the directory {$DIR}\libD10_3\$(Platform) to the library path
   Delphi 10.4     : Add the directory {$DIR}\libD10_4\$(Platform) to the library path
   Delphi 11       : Add the directory {$DIR}\libD11\$(Platform) to the library path


3) Choose : File, Open and browse for the correct Packages\sgcWebSockets.groupproj
   (First compile sgcWebSocketsX.dpk and then install dclsgcWebSocketsX.dpk)
   
   packages files for Delphi:

   sgcWebSocketsD7.bpg              : Delphi 7
   sgcWebSocketsD2007.groupproj     : Delphi 2007
   sgcWebSocketsD2009.groupproj     : Delphi 2009
   sgcWebSocketsD2010.groupproj     : Delphi 2010
   sgcWebSocketsDXE.groupproj       : Delphi XE
   sgcWebSocketsDXE2.groupproj      : Delphi XE2
   sgcWebSocketsDXE3.groupproj      : Delphi XE3
   sgcWebSocketsDXE4.groupproj      : Delphi XE4
   sgcWebSocketsDXE5.groupproj      : Delphi XE5
   sgcWebSocketsDXE6.groupproj      : Delphi XE6
   sgcWebSocketsDXE7.groupproj      : Delphi XE7
   sgcWebSocketsDXE8.groupproj      : Delphi XE8
   sgcWebSocketsD10.groupproj       : Delphi 10
   sgcWebSocketsD10_1.groupproj     : Delphi 10.1
   sgcWebSocketsD10_2.groupproj     : Delphi 10.2
   sgcWebSocketsD10_3.groupproj     : Delphi 10.3
   sgcWebSocketsD10_4.groupproj     : Delphi 10.4
   sgcWebSocketsD11.groupproj       : Delphi 11



-------------------------------------------------------------------------------------------------------------------------------------------------
Installing sgcWebSockets in C++Builder(Only) 7 - XE8 - 11 Alexandria
-------------------------------------------------------------------------------------------------------------------------------------------------

1) Unzip the files included into a directory {$DIR}

2) Add the directory where the files are unzipped {$DIR} to the System Include path
   under Tools, Options, Environment options, C++ Options, Paths and Directories


   a) For specific CBuilder version
   C++ Builder 2010     : Add the directory {$DIR}\libD2010 to the System Include path
   C++ Builder XE       : Add the directory {$DIR}\libDXE   to the System Include path
   C++ Builder XE2      : Add the directory {$DIR}\libDXE2\$(Platform) to the System Include path
   C++ Builder XE3      : Add the directory {$DIR}\libDXE3\$(Platform) to the System Include path
   C++ Builder XE4      : Add the directory {$DIR}\libDXE4\$(Platform) to the System Include path
   C++ Builder XE5      : Add the directory {$DIR}\libDXE5\$(Platform) to the System Include path
   C++ Builder XE6      : Add the directory {$DIR}\libDXE6\$(Platform) to the System Include path
   C++ Builder XE7      : Add the directory {$DIR}\libDXE7\$(Platform) to the System Include path
   C++ Builder XE8      : Add the directory {$DIR}\libDXE8\$(Platform) to the System Include path
   C++ Builder 10       : Add the directory {$DIR}\libD10\$(Platform) to the System Include path
   C++ Builder 10.1     : Add the directory {$DIR}\libD10_1\$(Platform) to the System Include path
   C++ Builder 10.2     : Add the directory {$DIR}\libD10_2\$(Platform) to the System Include path
   C++ Builder 10.3     : Add the directory {$DIR}\libD10_3\$(Platform) to the System Include path
   C++ Builder 10.4     : Add the directory {$DIR}\libD10_4\$(Platform) to the System Include path
   C++ Builder 11       : Add the directory {$DIR}\libD11\$(Platform) to the System Include path


3) Choose : File, Open and browse for the correct Packages\sgcWebSockets.groupproj
   (First compile sgcWebSocketsX.dpk and then install dclsgcWebSocketsX.dpk)
   
   packages files for CBuilder:

   sgcWebSocketsC2010.groupproj     : C++ Builder 2010
   sgcWebSocketsCXE.groupproj       : C++ Builder XE
   sgcWebSocketsCXE2.groupproj      : C++ Builder XE2
   sgcWebSocketsCXE3.groupproj      : C++ Builder XE3
   sgcWebSocketsCXE4.groupproj      : C++ Builder XE4
   sgcWebSocketsCXE5.groupproj      : C++ Builder XE5
   sgcWebSocketsCXE6.groupproj      : C++ Builder XE6
   sgcWebSocketsCXE7.groupproj      : C++ Builder XE7
   sgcWebSocketsCXE8.groupproj      : C++ Builder XE8
   sgcWebSocketsC10.groupproj       : C++ Builder 10
   sgcWebSocketsC10_1.groupproj     : C++ Builder 10.1
   sgcWebSocketsC10_2.groupproj     : C++ Builder 10.2
   sgcWebSocketsC10_3.groupproj     : C++ Builder 10.3
   sgcWebSocketsC10_4.groupproj     : C++ Builder 10.4
   sgcWebSocketsC11.groupproj       : C++ Builder 11



-------------------------------------------------------------------------------------------------------------------------------------------------
Installing sgcWebSockets in Lazarus / FreePascal
-------------------------------------------------------------------------------------------------------------------------------------------------

1) Unzip the files included into a directory {$DIR}

2) Add the directory where the files are unzipped {$DIR} to the Lazarus library path
   under Tools, Environment options, Directories

3) From Lazarus

   Choose : File, Open and browse Packages\sgcWebSocketsLazarus.lpk
   (First compile and then install)
   
   Compiled files are located on Lazarus Directory, inside this, there is a Indy
   directory with latest Indy source version.

   Tested with Lazarus 2.0.12 and Indy 10.5.9.4930

 *******************************************************

 sgcWebSockets

*******************************************************

 [*] : Bug
 [+] : New
 [-] : Deleted
 [/] : Breaking changes

Versions
--------

4.5.4: 2021 November

 [+] : Improved TLSOptions.Version property, now if the value is tlsUndefined (the default), the client will try to negotiate all possible TLS versions (from TLS 1.3 to TLS 1.0), before this change the TLS 1.0 was selected.
 [+] : Improved Amazon AWS IoT Client, new property SignatureV4.SessionToken which must be filled when using temporarity security credentials.
 [+] : Improved HTTPUploadFiles, now there are 2 new events: OnHTTPUploadBeforeSaveFile and OnHTTPUploadAfterSaveFile, allowing to know/modify the name of the file received.
 [+] : Improved openSSL configuration, if openSSL_Options.LibPath = oslpCustomPath then will set the openSSL libraries location to the value of OpenSSL_Options.LibPathCustom (Thanks to Matteo for the suggestion).
 [+] : Improved openSSL configuration, new property UnixSymLinks allows to disable the loading of SymLinks under Unix. Fixes the error "Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI." under MacOS Monterey.
 [+] : Improved openSSL error message "cannot load opensssl", now shows the path, methods not available and version. It's available only on Enterprise Edition.
 [+] : Improved Socket.IO API, added support for latest API 4.
 [+] : Added Support for Cryptorobotics Send Signal method.
 
 [*] : Fixed Bug Indy Servers, in some cases half-disconnected http connections may make use of the full cpu. (Thanks to Moacir to let me know).
 [*] : Fixed Bug when PerMessage_Deflate, handling a Z_BUF_ERROR message.
 [*] : Fixed Bug when PerMessage_Deflate, if an empty string or memory stream was sent, an error was raised.
 [*] : Fixed Bug when PerMessage_Deflate, if there was an internal error while inflating or deflating, the error message was not passed to the exception.
 [*] : Fixed Bug when PerMessage_Deflate, when inflating a stream, if the buffer wasn't big enough, the stream wasn't fully compressed.
 [*] : Fixed Bug TsgcWebSocketClient using plain TCP Protocol and TLS 1.3, the connection locks the thread during some seconds.
 [*] : Fixed Bug when the property HTTPUploadFiles.RemoveBoundaries was enabled, the filename were not extracted on older Delphi versions.
 [*] : Fixed Bug when the property HTTPUploadFiles.RemoveBoundaries was enabled, if the filename had spaces, the filename was not extracted completely.
 [*] : Fixed Bug when compiling TsgcWebSocketClient_WinHTTP under CBuilder, Ambiguity error with Wininet unit (HINTERNET, INTERNET_PORT).
 [*] : Fixed Bug MQTT Client read/write VarInteger values.
 [*] : Fixed Bug MQTT Client when publishing a message with PublishProperties, always sent the property TopicAlias = 1.
 
 [/] : The property TsgcWebSocketClient.Active now returns if the internal connection is Assigned or not. Before that, it called the Connected function of TCP Client.

No comments found.
Login to post a comment
This item has not received any review yet.
Login to review this item
No Questions / Answers added yet.
Recently viewed items

We use cookies to understand how you use our website and to improve your experience. This includes personalizing content and advertising. To learn more, please click Here. By continuing to use our website, you accept our use of cookies, Privacy policy and terms & conditions.

Processing