Lazarus

Programming => Packages and Libraries => Topic started by: huelbert on November 23, 2021, 09:54:25 pm

Title: Non-blocking http server
Post by: huelbert on November 23, 2021, 09:54:25 pm
Good afternoon

Is there any way to create a non-blocking http server in Lazarus?

I've tried it with fphttpserver and fphttpapp but it loses packages with more than 100 simultaneous users

Title: Re: Non-blocking http server
Post by: sstvmaster on November 23, 2021, 10:57:09 pm
Hi,

i think you can use INDY (10.6.2.4060). https://wiki.freepascal.org/Indy_with_Lazarus

Download via OPM (Ctrl-Alt-O or Strg-Alt-O) if installed in Lazarus.
Title: Re: Non-blocking http server
Post by: huelbert on November 24, 2021, 01:47:13 pm
I'll look into Indy.

Does anyone know how to use fpWeb, fphttpserver or fphttpapplication in async, non-block or working with events?
Title: Re: Non-blocking http server
Post by: nummer8 on November 24, 2021, 03:05:08 pm
As an alternative you could try the LNET components. Also installable through Online Package Manager.
Title: Re: Non-blocking http server
Post by: Remy Lebeau on November 27, 2021, 06:40:29 am
i think you can use INDY

There is nothing non-blocking about Indy. However, in this case, its TIdHTTPServer component is multi-threaded, not non-blocking. Each client runs in its own thread, and then you can perform blocking operations in each thread.
Title: Re: Non-blocking http server
Post by: ttomas on November 27, 2021, 04:11:39 pm
You can try new mORMot2 async server. With TRestHttpServer just use useHttpAsync option.
TinyPortal © 2005-2018