6

我正在寻找 Net Framework 世界中的 Jetty 等价物——托管代码。它存在吗?我想使用 F#/C#/VB.net 应用程序中的库。“不要在 Jetty 中部署你的应用程序,在你的应用程序中部署 Jetty。”

4

2 回答 2

5

您正在寻找多复杂的 API?对于简单的任务,我认为您只需使用标准HttpListener类型就可以走得更远。有一个 MSDN 示例用 F# 代理封装它(第 3 部分),然后使用它创建一个简单的聊天服务器(第 4 部分)。

聊天服务器的核心部分看起来相当简单:

let handleRequest (context:HttpListenerContext) = async { 
    match context.Request.Url.LocalPath with 
    | "/post" -> 
        // Send message to the chat room
        room.SendMessage(context.Request.InputString)
    | "/chat" -> 
        // Get messages from the chat room (asynchronously!)
        let! text = room.AsyncGetContent()
        context.Response.Reply(text)
    | s ->
        // Omitted: handle file request }

可用于 F# 的更高级的库可能是Frack(Open Web Interface for .NET (OWIN) 的实现,一个 .NET Web 服务器网关接口,用 F# 编写。)这看起来也很容易使用。

于 2012-11-08T17:32:41.033 回答
4

ServiceStack还在 Win/.NET 或 Mono/Linux(除了 ASP.NET 主机)中的自托管 HttpListener 应用程序中运行。

有关在 C# 或 F# 控制台应用程序中运行 ServiceStack 的简单示例,请参阅自托管 wiki 页面

于 2012-11-09T00:32:54.790 回答