我正在考虑我编写的项目的下一步。它目前是一个控制串口设备的桌面应用程序。
我正在考虑允许浏览器客户端连接到某个进程以获取有关设备状态等的“近乎实时”更新。可能还允许从浏览器客户端进行控制。
我宁愿不从头开始编写自己的网络服务器,这将是一个非常缩小的网络服务器。
关于在哪里看的任何建议?
我更喜欢 C++ 或 C# 实现。
如果您在 Windows 上运行,请使用 http.sys。它是一个通过 .NET 框架公开的轻量级 Web 服务器。
http://mikehadlow.blogspot.com/2006/07/playing-with-httpsys.html
我从朋友那里听说过有关lighthttpd的好消息
我不知道任何 C# http 服务器,但是您可以很快地制作自己的服务器(请参阅http://www.codeplex.com/webserver)。
正如建议的那样,lighthttpd可能会成功。
我还推荐simpleweb,这是一个用 Java 编写的非常轻巧且功能强大的 http 服务器。
nginx非常轻量级并且非常可扩展(例如,请参阅 Wordpress 的故事以了解一个高调的案例)。仅 POSIX。
这是我去年写的另一种选择,并且对我很有帮助。
嵌入IO: https ://github.com/unosquare/embedio
我主要使用它在 Raspberry Pi(软浮点)上创建 RESTful 服务。它也是麻省理工学院许可的。
查看我的网络服务器项目: http: //www.codeplex.com/webserver 它包含一个精简分支,用于最小化。
Consider taking a look at the System.Net.HTTPListener class. It implements a HTTP listener which makes it very easy to respond to HTTP requests from clients. Since you don't need a full-fledged HTTP server, that is probably the way to go!
从 Visual Studio 运行 Web 项目时,通常是通过 Cassini2 运行它。这也是一个可下载的项目。
否则,如果您想要更小的东西,您可以查看 Indy 10 库(开源),它是一套完整的网络 API。你可以用它相当快地编写你自己的网络服务器。
或者,NSoftware 也有一些网络 API。它们是商业的,但有据可查,我很幸运能得到他们的支持(但已经有一段时间了)。
由于您不是自己编写的,因此它必须是最小的服务器吗?Apache 和相关的可能会满足您的目的。它是重量级的,但不了解您的更多可能或可能不是问题的要求。
我不知道是否适合您的项目,但http://www.tntnet.org/看起来很有希望。或者,您可以寻找一个 http 服务器库,您可以添加您的自定义代码来构建一个嵌入了应用程序的 Web 服务器。有很多(如 libmicrohttpd),在不了解您的项目的情况下不值得在这里列举。
您也可以尝试使用 nodejs 来构建网络服务器。
有实现简单示例的示例