VDR-Webapplikation Teil 2: ein integrierter Webserver


der erste Teil der Serie hat sich mit den grundlegenden EPG Datenstrukturen beschäftigt. Und Grundlagen zu schaffen ist auch Hauptaufgabe des zweiten Teils.


Ich habe lange überlegt was besser wäre: ein externer Webserver wie IIS oder Apache oder ein integrierter Webserver. Die Entscheidung ist dann schlussendlich für den integrierten Webserver gefallen.


Dafür habe ich mehrere Gründe:



  1. der Webserver ist keine Schwachstelle von vdradmind, dem auf Perl basierenden Vorbild
  2. es werden keine High-Load Anforderungen an den Webserver gestellt
  3. spart man sich so die Installation und Konfiguration eines Webservers
  4. ist die Webserver Implementierung in C# ausgesprochen einfach zu erledigen und es existiert eine sehr gute Implementierung unter BSD ähnlicher Lizenz

Wie eben angesprochen werde ich wohl in erster Version eine schon existierende Webserver Implementierung verwenden. Die C# Klasse HttpServer von Sam Pullara. Nach einigen Tests scheint diese Klasse, die einen einigermassen kompletten Multithreaded HTTP Server in weniger als 300 Zeilen C# Quelltext realisiert, eine perfekte Grundlage für kommende Erweiterungen zu sein.


Und so schaut sie aus:



… und so wird das ganze dann instantiiert:


{
HttpServer httpServer;
int port = 8001;
string docRoot = “.”;
httpServer =
new HttpServer(docRoot, port);
Thread thread =
new Thread(new ThreadStart(httpServer.listen));
thread.Start();
}


Sieht gut aus, oder ? 😉 Ich werde als nächstes alles in ein erstes Gerüst giessen und schauen das ich die Grundkonzeption fertigstelle. Die gibts dann in Teil 3.


Aber zum Schluss noch der Quelltext in einer Solution zusammengefasst:


Download: HTTPServer.zip (16,3 KB)


Quelle: http://www.sampullara.com/

Comments are closed.