Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2021-09

FCL-Web updates/extensions

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael Van Canneyt

Hello,

Thanks to the efforts of Ondrej Pokorny and some sponsored work by the FPC/Lazarus foundation, FCL-Web has received some updates:

- Improvements in fcl-net, basically a Select() call has been added to the socket stream, on all platforms that support this.

- Possibility to keep connections open in the HTTP Server (keep-alive).

- A HTTP client connection pool, for parallel downloading.

- HTTP Client Downloads can now be canceled.

- New threading model for the FPC HTTP server:
- No threading
- One thread per request/connection
- Thread pool, distributing requests over available threads.

- The thread pool functionality is in a separate unit, available for other things as well...

- Interceptors in the HTTP router:
In the HTTP router you can now register interceptors. These will be run before/after the request is dispatched to the correct handler.

Interceptors can cancel further handling of a request: This allows you to implement e.g. authentication, logging etc. in an orthogonal manner to normal request handling.

- The FPC HTTP server can now handle Connection: upgrade using registered upgrade handlers. This can be used for websocket (see below) and later HTTP/2 handling.

- FPC has now native support for the websocket protocol: both client and server are supported. Native chat client/server demos are included, and a pas2js client for use in the browser is also available. (SSL support is there but still needs testing)

- The websocket protocol support can be attached to the HTTP server. That means you can initiate a websocket connection on the same port as the HTTP server is listening; the HTTP server will hand off the connection to the websocket server using the upgrade mechanism. A server demo is included as well.

Attached a small screenshot of the websocket-based chat program in pas2js.

Enjoy,

Michael.

Reply by email