Indy Servers - EPOLL Linux (3 / 3)

From sgcWebSockets 2022.9.0 there is a new IOHandler for Linux, using EPOLL you can avoid the "one-thread-per-client" problem where the performance decrease a lot as more connections are handled by the server. IOCP provides a few threads that handle multiple clients. The threads are suspended and don't use CPU cycles until there is something t...

Continue reading

Indy Servers - IOCP Windows (2 / 3)

From sgcWebSockets 2022.9.0 the Indy Server IOCP IOHandler has been rewritten from scratch and performance improved. The IOCP IOHandler is only available on sgcWebSockets Enterprise Package. Using IOCP you can avoid the "one-thread-per-client" problem where the performance decrease a lot as more connections are handled by the server. IOCP provides ...

Continue reading

Indy Servers - Thread Model (1 / 3)

Indy Servers use threads to handle the client connections, every time a new client connects to the server, a new thread is created and this thread handles the connection, so if you have 100 connections, there will be 100 threads. Additionally, indy uses blocking sockets, which means when you read or write, the function doesn't return until it is co...

Continue reading

DTLS over UDP on Server and Client Components

From sgcWebSockets 2022.8.0 DTLS over UDP is supported by Server and Client UDP components. This means that now you can send encrypted messages using UDP (like WebSocket or HTTP protocol that work over TLS). From Wikipedia: Datagram Transport Layer Security (DTLS) is a communications protocol providing security to datagram-based applications b...

Continue reading

Delphi 11.2 iOS ARM Simulator

From sgcWebSockets 2022.8.0 the new iOS ARM Simulator personality is supported, so now you can test your iOS projects in a iOS simulator if you have a Mac based on ARM. Just select the new personality in the Rad Studio Project, build and start the project, the application will be shown in the ARM machine. This will reduce the time during developmen...

Continue reading
Tags:

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

OpenAPI Delphi Client Parser

The OpenAPI Specification, previously known as the Swagger Specification, is a specification for machine-readable interface files for describing, producing, consuming, and visualizing RESTful web services. Previously part of the Swagger framework, it became a separate project in 2016, overseen by the OpenAPI Initiative, an open-source collaboration...

Continue reading

ZLib 1.2.12 Delphi - CBuilder

sgcWebSockets uses ZLib for WebSocket Compression/Decompression. Recently Zlib has released a new version with fixes the following issues: Fix a deflate bug when using the Z_FIXED strategy that can result in out-of-bound accesses.Fix a deflate bug when the window is full in deflate_stored().Speed up CRC-32 computations by a factor of 1.5 to 3....

Continue reading

Telegram Sponsored Messages

From sgcWebSockets 2022.3.0, Sponsored Messages are supported. Sponsored Messages requires Telegram 1.8.0+, so the Telegram libraries have been updated to support this feature. Sponsored messages on Telegram are displayed in large public one-to-many channels with 1000+ subscribers and are limited to 160 characters. Sponsored Messages are based sole...

Continue reading

Telegram Request Phone Number or Location

From sgcWebSockets 2022.1 the Telegram Client component is able to request the user the Phone Number or the location when has login as a bot. Find below an example code in Delphi, CBuilder and .NET Delphi Example  oReplyMarkup := TsgcTelegramReplyMarkupShowKeyboard.Create;Try oReplyMarkup.AddButtonTypeRequestPhoneNumber('Give me your phone'); ...

Continue reading

Pusher Custom Authentication

From sgcWebSockets 2022.1, the sgcWebSockets Pusher client allows to implement your own custom authentication. Pusher only allow subscribe to private or presence channels, if the connection provides an authentication token, this allows to restrict the access. You can build your own Authentication flow, using OnPusherAuthentication event, this event...

Continue reading

Binance.us API Delphi and .NET

From sgcWebSockets 2022.1, the Binance.us Servers are supported by our Binance API Client. The following APIs are supported: WebSocket streams: allows to subscribe to some methods and get data in real-time. Events are pushed to clients by server to subscribers. Uses WebSocket as protocol.UserData stream: subscribed clients get account details. Requ...

Continue reading

Twilio Delphi Send a SMS Message

Find below a simple example of how to send a Twilio SMS message using sgcWebSockets library. Twilio Code  Just pass to the method the parameters: Phone from the message is sent, Phone where the message should be delivered, and the text Message. Set your own Twilio Account Sid and Twilio Auth Token. uses sgcHTTP;procedure SendTwilioSMS(const aF...

Continue reading

sgcWebSockets .NET MacOS 64

From sgcWebSockets .NET 4.5.4, MacOS 64 bits is supported, so now you can compile Visual Studio Mac Applications for Mac OS 64 bits. The components supported by MacOS are the same that for Windows, so you can build multi-platform applications using sgcWebSockets .NET library. Find below a video which shows how install sgcWebSockets .NET package on ...

Continue reading
Tags:

MacOS Monterey error loading openSSL libraries

After upgrading to MacOS Monterey, you may experience an error trying to load the openSSL libraries. Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI. This error appears when trying to load an unversioned dylib instead of a library with a revision number. To avoid this error, there is a ne...

Continue reading

OpenSSL 3.0 Indy Delphi and .NET

From sgcWebSockets 4.5.3, the openSSL 3.0 libraries are supported for the following compilers: Delphi 7 - Rad Studio 11 Windows 32/64OSX 64Android 32/64iOS 64Linux 64.NETWindows 32/64 OpenSSL 3.0  OpenSSL it's a major release with several internal changes, but it doesn't offers several advantages over 1.1 The openSSL libraries have been rename...

Continue reading

Pusher REST API

sgcWebSockets Pusher client has been improved on 4.5.3 version, the HTTP API has been implemented allowing to trigger events, get users of a channel and get a list of channels. Pusher is a hosted WebSockets solution for building powerful realtime interactive apps. The sgcWebSockets client allows to use the following pusher channels: Public Channels...

Continue reading

DevExtreme Datagrid WebSocket Protocol

DevExtreme Data Grid, from DevExpress, it's a powerful Data Grid for Javascript. One of the features it's partial updates which allows to update a record of a grid without updating the full page. Usually the update is received using WebSocket protocol. sgcWebSockets library can be used with DevExtreme Data Grid, allowing to update the Grid in Real-...

Continue reading

SChannel Cipher List and Connection Info

From sgcWebSockets 4.5.1 SChannel has been improved with 2 new features: 1. There is a new property in TLSOptions.SChannel_Options called CipherList where you can set which Ciphers will be used. 2. There is a new function called GetInfo which returns the info like Protocol used (TLS1.2, TLS1.1...), the cipher, cipher strength... and more Cipher Lis...

Continue reading

Telegram Get Members

Telegram API allows to get information about members of a SuperGroup. Use the method GetSuperGroupMembers to get information about members or banned users in a supergroup or channel. Can be used only if SupergroupFullInfo.can_get_members is true; additionally, administrator privileges may be required for some filters. By default the method returns ...

Continue reading