我正在寻找网络框架世界中的码头等效物 - 托管代码。它存在吗?我想从f#/c#/vb.net应用程序中使用库。"不要将您的应用程序部署在码头中,而要在您的应用程序中部署码头。"
您要寻找的是多么复杂的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(用于.NET(OWIN)的开放Web接口的实现,以F#编写的.NET Web Server Gateway接口。)这看起来也很容易使用。<<<<<<<<<<<<<</p>
ServiceStack在Win/.net或Mono/Linux中的自我托管HTTPLISTENER应用程序中也运行(除了ASP.NET主机外)。
。有关在C#或F#Console Apps中运行ServiceStack的简单示例。