2009-01-20 17 views
11

Ich denke an die nächsten Schritte für ein Projekt, das ich geschrieben habe. Es ist derzeit eine Desktop-Anwendung, die ein Gerät mit seriellem Port steuert.Open-Source-Minimal-Webserver?

Ich erwäge Browser-Clients die Verbindung zu einem Prozess zu ermöglichen, um "fast Echtzeit" -Updates über den Zustand usw. des Geräts zu erhalten. Möglicherweise auch die Kontrolle von einem Browser-Client zu ermöglichen.

Ich würde lieber nicht meinen eigenen Webserver von Grund auf neu schreiben und dies wäre ein sehr verkleinerten Webserver.

Haben Sie Vorschläge, wo Sie suchen können?

Ich würde C++ oder C# Implementierung bevorzugen.

Antwort

5

Ich kenne keine C# http-Server, aber Sie können Ihre eigene ziemlich schnell (siehe http://www.codeplex.com/webserver) machen.

Wie vorgeschlagen, lighthttpd könnte den Trick tun.

Ich würde auch empfehlen simpleweb, die eine sehr leichte und leistungsfähige http-Server in Java geschrieben ist.

+0

+1 für SimpleWeb, die Async-Unterstützung hat – ozhan

0

Ich weiß nicht, ob Ihr Projekt passt, aber http://www.tntnet.org/ sieht vielversprechend aus. Alternativ können Sie nach einer http-Server-Bibliothek suchen, der Sie Ihren benutzerdefinierten Code hinzufügen können, um einen Webserver mit eingebetteter Anwendung zu erstellen. Es gibt viele (wie libmicrohttpd), die es hier nicht wert sind aufzuzählen, ohne Ihr Projekt zu kennen.

1

Wenn Sie ein Webprojekt von Visual Studio ausführen, führen Sie es normalerweise über Cassini2 aus. Das ist auch ein herunterladbares Projekt.

Andernfalls, wenn Sie etwas kleineres wollen, können Sie sich Indy 10 Bibliothek (Open Source), die eine vollständige Reihe von Networking-API ist. Sie könnten damit wahrscheinlich ziemlich schnell Ihren eigenen Webserver schreiben.

Oder NSoftware hat auch einige Netzwerk-API. Sie sind kommerziell, aber gut dokumentiert, und ich hatte viel Glück mit ihrer Unterstützung (aber es ist eine Weile her).

5

Ich habe lighthttpd

+0

Weiß nicht, wie "abgespeckte" es ist, IRT-Speicher-Fußabdruck, etc ... Aber es ist viel schnell! – Calyth

1

über von einem Freund Gutes gehört, da Sie es nicht selbst schreiben, es ist ein minimal-Server sein muss? Apache und verwandte können Ihrem Zweck dienen. Es ist Schwergewicht, aber ohne mehr von Ihren Anforderungen zu wissen, die möglicherweise ein Problem sind oder nicht.

2

Betrachten Sie die System.Net.HTTPListener-Klasse. Es implementiert einen HTTP-Listener, der es sehr einfach macht, auf HTTP-Anfragen von Clients zu antworten. Da Sie keinen vollwertigen HTTP-Server benötigen, ist das wahrscheinlich der richtige Weg!

2

Ein paar weitere Vorschläge:

-1

Sie können Nodejs versuchen, einen Webserver zu erstellen.

Es gibt Beispiele auf ein einfaches

2

Hier ist eine weitere Alternative, die ich schrieb im vergangenen Jahr der Umsetzung und und hat mich gut bedient.

EmbedIO:https://github.com/unosquare/embedio

Ich benutze es meist RESTful-Dienste auf dem Raspberry Pi (soft-float) zu erstellen. Es ist MIT lizenziert auch.