Recent

Author Topic: Non-blocking http server  (Read 6234 times)

huelbert

  • Newbie
  • Posts: 2
Non-blocking http server
« 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


sstvmaster

  • Sr. Member
  • ****
  • Posts: 299
Re: Non-blocking http server
« Reply #1 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.
greetings Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

huelbert

  • Newbie
  • Posts: 2
Re: Non-blocking http server
« Reply #2 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?

nummer8

  • Full Member
  • ***
  • Posts: 111
Re: Non-blocking http server
« Reply #3 on: November 24, 2021, 03:05:08 pm »
As an alternative you could try the LNET components. Also installable through Online Package Manager.

Remy Lebeau

  • Hero Member
  • *****
  • Posts: 1314
    • Lebeau Software
Re: Non-blocking http server
« Reply #4 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.
Remy Lebeau
Lebeau Software - Owner, Developer
Internet Direct (Indy) - Admin, Developer (Support forum)

ttomas

  • Full Member
  • ***
  • Posts: 245
Re: Non-blocking http server
« Reply #5 on: November 27, 2021, 04:11:39 pm »
You can try new mORMot2 async server. With TRestHttpServer just use useHttpAsync option.

 

TinyPortal © 2005-2018