Jump to content

esegece

Members
  • Content Count

    64
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by esegece


  1. If you want to compile the latest Indy package with Devexpress installed, you should do some changes, there is a post in the devexpress website which explains this:

     

    https://supportcenter.devexpress.com/ticket/details/t421126/installation-with-updated-indy-components

     

    Additionally, I wrote a blog post a month ago about how install the sgcIndy package installer and Devexpress:

     

    https://www.esegece.com/community/blog/sgcindy-devexpress


  2. Hi,

     

    There is a simple demo that shows how connect to discord api and send a simple http request, is in the trial folder: 

     

    Demos\01.WebSocket_Quick_Start\02.WebSocket_Clients_APIs

     

    You only need the boot token from discord and you can start to send requests to the bot.

    The discord API is not as easy to use as Telegram. Basically is a mix of WebSocket protocol to get notifications and HTTP requests to send commands, following the Discord api will be enough to implement the required functionality. If you've any doubts you can use the public forum from esegece to get support.

    You can read the basics of the implemented Discord API using the following link:

     

    https://www.esegece.com/help/sgcWebSockets/#t=Components%2FAPIs%2FAPI%2FAPI_Discord.htm

     

    Kind Regards,

    Sergio

     

    • Thanks 1

  3. Hi,

     

    Thanks for your feedback, find my answers below:

     

    1) Thanks for the suggestion, I'll check if this protocol can be implemented, you are not the first who ask about this protocol.

    2) Standard and Professional can use the openssl libraries, the difference with the Enterprise Edition is the Standard and Professional use the default Indy package that comes with delphi (which by default only supports openssl 1.0.2 libraries). While the Enterprise Edition comes with a custom Indy version that supports openssl 1.1.1 and 3.0.0

    3) The basic edition is for customers more sensible with the price but I always recommend the source code edition. Thanks for your opinion, feedback is always welcome.

     

    Kind Regards,

    Sergio

     

    • Thanks 1

  4. sgcWebSockets is a complete package providing access to WebSocket, MQTT, STOMP, AMQP, HTTP/2, STUN, TURN... and more protocols and APIs.

    

    What's new latest Versions

    Rad Studio 12 Athens support

    - Components to build ChatBots using OpenAI API

    New Pinecone API Client: it's a vector database which provides long-term memory for AI using embeddings from AI models.

    - New WebPush Protocol for Server and Client Components.

     


    Main Features:

    - WebSocket and HTTP/2 Support: sgcWebSockets includes client and server-side implementations of the WebSocket protocol (RFC 6455). HTTP/s is also full supported. Support for plain TCP is also included.
    - 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 (3.1.1 and 5.0), STOMP, AMQP, WEBRTC, SIGNALR CORE, WAMP... Built-in protocols support Transactions, Datasets, QoS, big file transfers and more. APIs supported for third-parties like Binance, Coinbase, Kraken...
    - Cross-platform: Share your code using our WebSockets library for your Delphi VCL, Firemonkey, Javascript and .NET projects. Includes Server, Clients and several protocols for building and connecting to WebSocket applications.
    - High Performance WebSocket Server based on Microsoft HTTP Framework and IOCP.

    - Indy Servers (WebSocket + HTTPs) for Windows (IOCP) and Linux (EPOLL).

    - WhatsApp and Telegram clients.

    - Authorization protocols like OAuth2 and JWT are supported on Server and Client Components.

    - STUN and TURN protocols are supported on Server and Client Components

    - OpenAPI Pascal Client Generator for OpenAPI 3.0 and Swagger 1.0-2.0.

    - Use OpenAI API to build ChatBots, Translators and more.

     

    Trial Version:

    https://www.esegece.com/websockets/download/download-delphi-cbuilder

     

    Compiled Demos:
    https://download.esegece.com/sgcWebSockets_bin.zip

     

    More Info:
    https://www.esegece.com/websockets

    • Like 1

  5. Hello,

     

    I assume that when you say "my app freezes" you are referring to the server. Usually when the server freezes is because there is a thread-lock, Indy servers are multi-threaded but the the event handlers are not thread-safe, so if you need to update a VCL control when you read some data, this operation must be done in the main thread (using Synchronize or Queue). 25 concurrent connections is quite low, so Indy server can handle these connections without problems. If you can provide more info about your code we can try to help you.

     

    Kind Regards,

    Sergio

    • Like 1

  6. sgcWebSockets is a complete package providing access to WebSocket, MQTT, STOMP, AMQP, HTTP/2, STUN, TURN... and more protocols and APIs.

    

    What's new 

    - OpenAI API Support: the OpenAI API is now fully supported so you can build your own Chat Bots using ChatGPT-Turbo, Speech-to-Text, Translate documents, Code completion, Image generation and much more. Find below some examples of use:

      - Building a Chat Bot using ChatGPT-Turbo

      - Speech-To-Text

      - Translate Audio Files

      - Image Generator from Prompts

     


    Main Features:

    - WebSocket and HTTP/2 Support: sgcWebSockets includes client and server-side implementations of the WebSocket protocol (RFC 6455). HTTP/s is also full supported. Support for plain TCP is also included.
    - 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 (3.1.1 and 5.0), STOMP, AMQP, WEBRTC, SIGNALR CORE, WAMP... Built-in protocols support Transactions, Datasets, QoS, big file transfers and more. APIs supported for third-parties like Binance, Coinbase, Kraken, FTX...
    - Cross-platform: Share your code using our WebSockets library for your Delphi VCL, Firemonkey, Javascript and .NET projects. Includes Server, Clients and several protocols for building and connecting to WebSocket applications.
    - High Performance WebSocket Server based on Microsoft HTTP Framework and IOCP.

    - Indy Servers (WebSocket + HTTPs) for Windows (IOCP) and Linux (EPOLL).

    - WhatsApp and Telegram clients.

    - Authorization protocols like OAuth2 and JWT are supported on Server and Client Components.

    - STUN and TURN protocols are supported on Server and Client Components

    - OpenAPI Pascal Client Generator for OpenAPI 3.0 and Swagger 1.0-2.0.

     

    Trial Version:

    https://www.esegece.com/websockets/download/download-delphi-cbuilder

     

    Compiled Demos:
    https://download.esegece.com/sgcWebSockets_bin.zip

     

    More Info:
    https://www.esegece.com/websockets


  7. Hi @Remy Lebeau,

     

    Sorry for the late response, absolutely no problem in renaming the sgcIndy package. I've removed from the website because I need some time to implement those changes. The components have been renamed to sgcInternet. Thanks for your feedback, I really appreciate it.

     

    Kind Regards,

    Sergio


  8. Hello,

     

    I am the eSeGeCe developer, sgcIndy is a product based on Indy that it's used by the sgcWebSockets library because requires some additional features that are not supported, some of them officially, by the indy library like openSSL 1.1 and 3.0, ALPN, IOCP, EPOLL... some users asked me that they were interested in using the Indy library with this modifications but were not interested in purchase the full sgcWebSockets library, so I released some months ago the sgcIndy library so they could purchase only the sgcIndy package with source at a lower price than the full sgcWebSockets package. 

     

    I offer for free the sgcIndy library to all delphi / Cbuilder users, which includes a setup which installs automatically this package. Only is required to purchase, if you want the source code, that's all.

     

    Kind Regards,

    Sergio


  9. Hi,

     

    Glad to hear it works now.

    You can use the TsgcHTTP1Client which is an HTTP client based with authorization features like OAuth2.
     
     
    You can attach a TsgcHTTP_OAuth2_Client to the oHTTP Client, and when you do a call request to the API, if the client detects there is not a valid Bearer Token, it will ask from OAuth2 Client. Once has a bearer token, this is attached automatically to the HTTP headers. Find below a simple example:
     
    procedure DoHTTPAPI;
    var
      oAuth2: TsgcHTTP_OAuth2_Client;
      oHTTP: TsgcHTTP1Client;
    begin
      oAuth2 := TsgcHTTP_OAuth2_Client.Create(nil);
      // ... here your oauth2 configuration
    
      oHTTP := TsgcHTTP1Client.Create(nil);
      Try
        oHTTP.Authentication.Token.OAuth := OAuth2;
        oHTTP.Get('http://www.yourapi.com/test');
      Finally
        oHTTP.Free;
      End;
    end;

     

    Kind Regards,

    Sergio


  10. Seems there is an error while installing the components using the installer, seems a configuration problem, because this is the error you got:

     

    Quote

    C:\Program Files (x86)\Embarcadero\Studio\18.0\Bin\CodeGear.Delphi.Targets(405,5): error MSB6004: The specified task executable location "C:\Program Files (x86)\Embarcadero\Studio\18.0\bin\dcc64.exe" is invalid.

     

    You can try to install manually too, just open the group project  E:\Programming\sgcWebSockets_D10_1\Packages\sgcWebSocketsD10_1.groupproj and follow the steps:

     

    https://www.esegece.com/help/sgcWebSockets/#t=Install%2FInstall_Package.htm

     

     


  11. Hi,

     

    OAuth2 is basically an authorization protocol that after a successful authorization, returns a bearer token (like an id) that can be used later to access to a REST API. You just need to pass the bearer token in the HTTP headers of the Get/Post... request.

    I've a commercial product called sgcWebSockets that implements OAuth2 (among other protocols), you can download a trial for Delphi from:

     

    https://www.esegece.com/websockets/download/download-delphi-cbuilder

     

    If you want to read more about the OAuth2 implementation, you can use the following link:

     

    https://www.esegece.com/help/sgcWebSockets/#t=Components%2FHTTP%2FAuthorization%2FOAuth2%2Fclient%2FTsgcHTTP_OAuth2_Client.htm

     

    If you are in trouble testing the demo or you need assistance converting the postman scripts, you can use the following link: https://www.esegece.com/contact/contact-us

     

    Kind Regards,

    Sergio

     

     

     

    • Like 1

  12. Hi,

     

    The generated code file is multiplatform, but currently the trial only provides the required files for Windows, but the library takes the code from the sgcWebSockets package which is multiplatform. I've just tried to compile an openAPI generated specification and works well on OSX. I'll add support for all Delphi personalities on next the sgcOpenAPI Parser version, thanks for the suggestion.

    The Web service is called in the same process where is called the request, so if the call is called from the main thread, the request will be called in the main thread.

     

    Kind Regards,

    Sergio

    • Like 1

  13. An OpenAPI Parser is a tool used for parsing and validating OpenAPI specifications. OpenAPI is a specification for building APIs that defines a standard language-agnostic interface for RESTful web services. Now you can use the sgcOpenAPI Parser to import any OpenAPI Specification and generate the required Delphi / Pascal interface methods to interactuate with the API. The sgcOpenAPI Parser supports the following specifications:

     

    - OpenAPI 3.*
    - Swagger 2.* (automatically converted from 2.0 to 3.0)
    - Swagger 1.* (automatically converted from 1.0 to 3.0)

     

    sgcOpenAPI_Parser.thumb.png.9faab2759329f95e59a2ee2a8c431bce.png

     

    The sgcOpenAPI Parser has been used to generate the following pre-built SDKs

     

    - Amazon AWS SDK (+280 Services)

    - Google Cloud SDK (+250 Services)

    - Azure SDK (+650 Services)

    - Microsoft SDK (+15 Services)

     

    More Info:

      https://www.esegece.com/openapi

      https://www.esegece.com/community/blog

      https://youtu.be/yCpRTm_KZ7I

     

    Trial Version:

      https://www.esegece.com/openapi/parser

     

    Kind Regards,

    Sergio

     

    • Like 4
    • Thanks 1

  14. 1 hour ago, Rollo62 said:

    Thanks for the info, I see two products of yours supporting OpenSSL:

     - The sgcWebSockets ( which needs to be the Enterprise version, wich comes with SSL and many other features )

     - or the sgcIndy ( which seems to be SSL alone addition to normal Indy, but I assume this will solve the SSL issues )

     

    Can you please tell us the strategy behind:

    Is the "WebSockets Enterprise" = "WebSockets package" + "sgcIndy package" ?

    Or are the SSL implementations in sgcWebSockets Enterprise and scgIndy somewhat different ?

    Both should come with all cross-platform binaries of latest SSL.

     

    Can I start with sgcWebSocket Professional and then add sgcIndy later, will I got the same as in sgcWebSockets Enterprise ?

     

    Hello,

     

    Yes, sgcWebSockets Enterprise edition comes with a custom indy package with support for openSSL 1.1 & 3.0, ALPN... The sgcIndy package, which is used for users that want to add support for the latest openSSL versions with the Indy components (ftp, smtp...) is currently included too with the sgcWebSockets Enterprise Source code package. The SSL implementations are equal for both, but in the sgcWebSockets package, the required indy files are renamed, so you can have the standard indy library installed in your IDE and the sgcWebSockets enterprise package without problems. Currently, the sgcIndy Package can be purchased separetely because some users are only interested in use the latest openSSL libraries for Indy.

     

    No, sgcWebSockets Enterprise has more features than sgcWebSockets Professional + sgcIndy, the enterprise edition has more components: HTTP.SYS server, http/2 support, DTLS over UDP... Anyway, you can upgrade from Professional to Enterprise edition at any time. More about feature matrix:

     

    https://www.esegece.com/websockets/features/feature-matrix-delphi-cbuilder

     

    Only keep in mind that if you purchase the sgcWebSockets professional edition and later you add sgcIndy, in order to use the latest openSSL libraries that comes with the sgcIndy package, you need the Professional Edition with source code, because the Professional BASIC edition compiles against the standard indy library.

     

    Kind Regards,

    Sergio


  15. Indy supports openSSL 1.1 using the following pull request https://github.com/IndySockets/Indy/pull/299, not sure if works on OSX

     

    I publish a commercial library based on Indy that supports openSSL 1.1 and openSSL 3.0 for all Delphi personalities (windows, OSX, linux, iOS...), you can use a TsgcHTTP1Client which inherits  from TIdHTTP Indy client and connect using openSSL 1.1 or 3.0

    Find below an example using openSSL 1.1 that is cross-platform

     

    uses
      sgcHTTP, sgcWebSocket_Types;
    
    
    
    function GetHTTP(const aURL: string): string;
    var
      oHTTP: TsgcHTTP1Client;
      vResponse: string;
    begin
      oHTTP := TsgcHTTP1Client.Create(nil);
      Try
        oHTTP.TLSOptions.OpenSSL_Options.APIVersion := oslAPI_1_1;
        oHTTP.TLSOptions.Version := tls1_3;
        oHTTP.Proxy.Enabled := True;
        oHTTP.Proxy.Host := '3.215.142.228';
        oHTTP.Proxy.Port := 3128;
        oHTTP.Proxy.ProxyType := pxyHTTP;
        result := oHTTP.Get(aURL);
      Finally
        oHTTP.Free;
      End;
    end;

     

    This still requires the openSSL libraries but I provide already compiled openSSL libraries for registered customers for Windows, OSX, iOS and Android. More info:

     

    https://www.esegece.com/

    https://www.esegece.com/help/sgcWebSockets/#t=Components%2FHTTP%2FHTTP1%2FHTTP1.htm

    https://www.esegece.com/help/sgcWebSockets/#t=QuickStart%2FOpenSSL%2FOpenSSL_OSX.htm

     

    The package that supports this is sgcWebSockets Enterprise that comes with a custom indy version that support openSSL 1.1 and 3.0

     

    Kind Regards,

    Sergio

    • Like 1

  16. If you need to send gmail authentication using OAuth2 you can try this open source project which implements this type of authentication using the Indy components:

     

    https://github.com/geoffsmith82/GmailAuthSMTP/blob/master/README.md

     

    Additionally, I offer a commercial product called sgcWebSockets that includes support for Indy servers with support for HTTPs with the latest openSSL using a custom library with support for the latest TLS 1.3 (openSSL 1.1.1 and 3.0.0). OAuth2 authentication is also supported on server and client components, Indy IOCP Server for high performance servers... and much more features, you can check in the following link:

     

    https://www.esegece.com/websockets

     

    Kind Regards,

    Sergio

    • Like 1
×