OAuth2 Server Allow none authenticated requests

By default, when OAuth2 is enabled on Server Side, all the HTTP Requests require Authentication using Bearer Tokens. If you want allow some URLs to be accessed without the need of use a Bearer Token, you can use the event OnOAuth2BeforeRequest Find below a sample code which shows the use of the event. procedure OnOAuth2BeforeRequest(Sender: TObject...

Continue reading

OAuth2 Server Register Apps

Before a new OAuth2 is requested by a client, the App must be registered in the server. Register a new App requires the following information:   App Name: is the name of the Application. Example: MyApp  RedirectURI: is where the responses will be redirected. Example: http://127.0.0.1:8080  ClientId: is public information and is the I...

Continue reading

OAuth2 Server Endpoints

By default, the OAuth2 Server uses the following Endpoints:   Authorization: /sgc/oauth2/auth   Token: /sgc/oauth2/token Which means that if your server listens on IP 80.54.41.30 and port 8443, the full OAuth2 Endpoints will be:   Authorization: https://80.54.41.30:8443/sgc/oauth2/auth   Token: https://80.54.41.30:8443/sgc/oauth...

Continue reading

OAuth2 Server Authorization

From sgcWebSockets 4.4.5 OAuth2 protocol is supported on Server Components. OAuth2 allows third-party applications to receive a limited access to an HTTP service which is either on behalf of a resource owner or by allowing a third-party application obtain access on its own behalf. Thanks to OAuth2, service providers and consumer applications can in...

Continue reading

Worldpay WebSocket STOMP API

Worldpay offers direct integration using WebSockets + STOMP protocols. You can access to Worldpay API using sgcWebSockets library, just need a TsgcWebSocketClient and STOMP Protocol client in order to connect to this API Find below a sample code to connect to Worldpay using sgcWebSockets library Delphi Example  // create websocket clientoClien...

Continue reading

sgcWebSockets 4.4.4

These are the features included in sgcWebSockets 4.4.4 [+] : New Component TsgcHTTPGoogleCloud_Calendar_Client, allows to use Google Calendar API V3: get Calendars, events, synchronize with your own calendar... [+] : New Demo GoogleCalendar which shows the main features of Google Calendar Client. [+] : New method "PublishAndWait" in MQTT Client, th...

Continue reading

WatchDog Monitor Server

From sgcWebSockets 4.4.4 a new property Monitor has been added to WatchDog feature, WatchDog.Monitor allows to verify if new clients can connect to server, this is done by an internal client that tries to open a WebSocket connection to server, if fails, it restart the server.  To monitor if clients can connect to server with a Time Out of 10 s...

Continue reading

Telegram Client and Proxies

From sgcWebSockets 4.4.4, the Telegram Client supports Proxy connections. Telegram Client can be configured to make of use of a proxy. Currently, Telegram supports 3 types of proxies: 1. HTTP 2. MTProto 3. Socks5 Add Proxy  In order to configure a HTTP Proxy, first you must add the proxy to telegram configuration, to do this, just call Ad...

Continue reading

MQTT Publish Message and Wait Response

From sgcWebSockets 4.4.4 the MQTT client has a new method called PublishAndWait. Till now, when a client publishes a message using QoS levels 1 or 2, the only way to know if the message was processed by server was using the asynchronous events OnMQTTAcknowledgment or OnMQTTPubComp, this means that client must implement his own wait method to check ...

Continue reading

Google Calendar Client API V3

From sgcWebSockets 4.4.4, Google Calendar API is supported, the Google Calendar API lets you integrate your app with Google Calendar, creating new ways for you to engage your users. The Calendar API lets you display, create and modify calendar events as well as work with many other calendar-related objects, such as calendars or access controls. Mai...

Continue reading

sgcWebSockets 4.4.3

These are the features included in sgcWebSockets 4.4.3 [+] : Initial support for HTTP/2 in TsgcWebSocketHTTPServer - New property HTTP2Options: allows to enable HTTP/2 protocol and configure initial settings. [+] : Improved Bittrex API component, now supports latest V3 API. - New Methods: Subscriptions to Balance, Orders, Candles, Trades... - New E...

Continue reading

DataSnap with WebSocket and HTTP/2

From sgcWebSockets 4.4.3, you can replace your DataSnap server application by our WebSockets server and take advantage of new features like: WebSocket ProtocolHTTP/2 ProtocolIOCP There are 3 different types of server that you can use as a replacement of TIdHTTPWebBrokerBridge default Indy server.  Server Main Features Description TsgcWSHTTPWeb...

Continue reading

HTTP/2 Server Test Performance

From sgcWebSockets 4.4.3, HTTP/2 is initially supported and new features will be added on next versions. In a prior entry blog we compared the performance between HTTP 1.1 and HTTP/2 protocols, to do this, I use sgcWebSockets HTTP/2 client which downloaded 100 images from imagekit.io servers.  HTTP/2 Client  sgcWebSockets HTTP/2 clie...

Continue reading

HTTP/2 Initial Server Support

From sgcWebSockets 4.4.3 HTTP/2 protocol is initially supported (it's still on beta) from TsgcWebSocketHTTPServer. Fast HTTP.SYS based server will receive support for HTTP/2 on next versions. By default, HTTP/2 support is disabled, so you must enable before testing. There is a new property, called HTTP2Options, just set HTTP2Options.Enabled = ...

Continue reading

AWS IoT MQTT Custom Authentication

From sgcWebSockets 4.4.3, Amazon AWS IoT MQTT component supports custom authentication, so from this version all MQTT protocols are supported. MQTT over WebSocketsMQTT over TCPX.509 certificate authenticationSignature V4 authenticationCustom Authentication Protocols Supported   The following table lists the protocols that the AWS IoT devi...

Continue reading

AWS IoT MQTT Signature V4

From sgcWebSockets 4.4.3, the Amazon AWS IoT client supports Signature V4 Authentication, this means that you don't need to use a certificate to authenticate against AWS MQTT Server. Signature V4 can be used for MQTT over WebSockets and port 443. Configuration First you must create a new user in your AWS console and assign privileges for IoT device...

Continue reading

Bittrex API V3 Support

From sgcWebSockets 4.4.3, Bittrex API component supports latest WebSocket API V3. Prior API, end of life is planned for 09/30/2020. The API still is based on SignalR but there are several changes, so all old methods have been removed and new methods and events have been added. Private Methods There are some new private methods like Subscription to ...

Continue reading

HTTP2 Tests from HTTPBIN.ORG

httpbin.org provides a useful server to test HTTP/2 protocol, there are several cases which can be used to test HTTP clients. You can find below a list of main tests provided: HTTP Methods: Testing different HTTP verbsAuth: Auth methodsStatus Codes: Generates responses with given status codeRequest inspection: Inspect the request dat...

Continue reading

HTTP2 Latency

In a previous post, I show a comparison between HTTP2 and HTTP1 performance using a single connection (see HTTP2 vs HTTP1 performance). In this post I will show a comparative between HTTP2 and HTTP1 introducing a latency and showing how latency can affect to HTTP protocol requests. When a client do a request, there is a latency, more or less depend...

Continue reading

HTTP2 Client Tests

RFC 7540 and RFC 7541 contains the full specification of HTTP/2 protocol and in the process of implementing a new HTTP/2 client for sgcWebSockets library, is important to use external tools to check if client component is working as expected. One of this online tools is hosted in: https://http2.golang.org/ This web offers some tests for HTTP/2 clie...

Continue reading