Article View: pl.comp.programming
Article #217016Re: Embedded HTTP Server
From: Wojciech Muła
Date: Sat, 06 Jun 2020 17:10
Date: Sat, 06 Jun 2020 17:10
28 lines
2876 bytes
2876 bytes
On Friday, June 5, 2020 at 10:57:51 PM UTC+2, Maciej Sobczak wrote:
> Z przyjemnością informuję o narodzinach wersji 1.0 nowego pakietu:
>
> http://www.inspirel.com/httpserver/
>
> Jest to bardzo prosta biblioteka w C++11, dla systemów Linux, Mac OS X oraz Windows, pozwalająca progamowi w C++ wyświetlić swoje GUI na przeglądarce webowej.
>
> Idea jest również opisana tutaj:
>
> https://en.wikipedia.org/wiki/Embedded_HTTP_server
>
> i wbrew nazwie nie ma bezpośredniego związku z systemami wbudowanymi (chociaż na RaspberryPi i podobnych można by było z satysfakcją domknąć tą definicję).
>
> Wszelkie komentarze mile widziane.
Po pierwsze, to aż się prosi, żeby ten serwer był zwykłą klasą. Czemu ktoś nie miałby sobie stworzyć 5 serwisów WWW działających na różnych portach?
Po drugie, nie ma sposobu na zamknięcie serwera, poza zabiciem procesu. Chyba, że ja czegoś nie widzę.
Mówiąc o API: 6 wariantów register_{generic,html,text}_{post,get}_action można by sprowadzić do 2. register_action(const char* name, {post_action_type, get_action_type} callback, const char* mime_type). Zresztą, może lepiej byłoby przyjmować jako argument mapę akcji - czyli to co masz teraz w get_actions/post_actions. Niech user sobie przygotuje takie mapy w sposób, jaki mu pasuje, a ty pozbędziesz się potrzeby blokowania tych struktur.
Czasem funkcje przyjmują const char*, czase std::string& co jest niespójne.
W ogóle nie walidujesz, czy wskaźniki są niepuste. Tak samo z std::function.
Zero testów. Serio? :)
w.
Technical Details
Message-ID:
<3e267b62-0fdf-41c2-9f9c-c316f98b85c6o@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin.stu.neva.ru!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<d423a072-9378-441b-ba06-e0657a1fa53bo@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:ac8:7383:: with SMTP id t3mr16520601qtp.221.1591463413961; Sat, 06 Jun 2020 10:10:13 -0700 (PDT) X-Received: by 2002:ac8:378f:: with SMTP id d15mr16022435qtc.136.1591463413790; Sat, 06 Jun 2020 10:10:13 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin.stu.neva.ru!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Sat, 6 Jun 2020 10:10:13 -0700 (PDT) In-Reply-To: <d423a072-9378-441b-ba06-e0657a1fa53bo@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=217.97.69.103; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn NNTP-Posting-Host: 217.97.69.103 References: <d423a072-9378-441b-ba06-e0657a1fa53bo@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <3e267b62-0fdf-41c2-9f9c-c316f98b85c6o@googlegroups.com> Subject: Re: Embedded HTTP Server From: Wojciech Muła <wojtek.mula@gmail.com> Injection-Date: Sat, 06 Jun 2020 17:10:13 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit