Indy Components and OpenSSL 1.1.1

In latest years, Indy have not been updated or only fixes have been applied, and several new features have not been implemented which are very important for sgcWebSockets package. To fix this, I've been working in latest months to provide a custom indy package with more features. Registered users can download custom indy package from some versions ...

Continue reading

Google API Key OAuth2

From sgcWebSockets 4.3.4, OAuth2 is supported. Google provides access to these APIs using OAuth2 authentication, so you first must get the OAuth2 Client ID and Client Secret before you can connect to Google Services. sgcWebSockets make use of standard web browser to request a new Authorization Code. If a refresh token is provided, it will upda...

Continue reading

OAuth2 Delphi WebSockets

OAuth2 allows to third-party applications to get access to restricted resources using HTTP protocol. RFC 6749 covers OAuth2 specification. There are 4 roles: ClientResource OwnerAuthorization ServerResource Server OAuth2 Flow  (A) The client requests authorization from the resource owner. The authorization request can be made directl...

Continue reading

Indy IOCP Server

Indy servers use one thread for every connection, this means that if your server must handle 1000 concurrent connections, it will create 1000 threads. But if instead of 1000 connections there are 10.000 connections, it creates 10.000 threads and so on... of course, this requires exponential hardware resources and it's not usable for high load ...

Continue reading

Could not load SSL library

Some libraries, like Indy, use openssl to connect to secure servers using TLS. As some components from sgcWebSockets package are based on Indy library, make use of openssl libraries and sometimes you get an error message when you can load a library. There are several reasons why you can't load the openssl library. In the following lines I will...

Continue reading

WebSocket Upload File Demo

This is a demo which shows how upload a file to a websocket server. Follow the next steps: Select a file which will be sent to server.Then press connect. If connection is successful a message will show you are connected to server.Press upload button and when file has been transferred you will see a message confirming this. Upload File Demo Select f...

Continue reading

Conditional Compilation sgcWebSockets

sgcWebSockets library has a configuration file located in source folder where contains all conditional compilations. This file is sgcVer.inc. If you open this file, you will see there are lots of conditional defines, basically for every Delphi / C++ Builder version, there are a bunch of conditional defines. For example, for Rad Studio 10.3 there ar...

Continue reading

SignalR Core Delphi

 ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. Real-time web functionality enables server-side code to push content to clients instantly. Good candidates for SignalR: Apps that require high-frequency updates from the server. Examples are gaming, social networks, voting, auction, maps...

Continue reading

Obsolete Connection String using RSA

sgcWebSockets library allows to run Secure WebSocket Servers using openSSL libraries, if you start a new secure server and try to connect with a web browser like chrome, will run fine and shows a green lock for the wss connection. But if you check the details of connection, you will see that chrome complains about security of it. Fix Cipher Suite&n...

Continue reading

Indy supports ALPN (Application Layer Protocol Negotiation)

ALPN or Application Layer Protocol Name is a TLS extension that includes the protocol negotiation within the exchange of hello messages. ALPN is able to negotiate which protocol should be handled over a secure connection in a way that is more efficient and avoids additional round trips. The ever-growing in popularity HTTP/2 protocol, makes use...

Continue reading