我得到了一个在控制台应用程序中托管SignalR的代码。这是代码。
Install-Package Microsoft.Owin.Hosting -pre
Install-Package Microsoft.Owin.Host.HttpListener -pre
Install-Package Microsoft.AspNet.SignalR.Owin -pre
using System;
using Microsoft.AspNet.SignalR;
using Microsoft.Owin.Hosting;
using Owin;
namespace SignalR.Hosting.Self.Samples
{
class Program
{
static void Main(string[] args)
{
string url = "http://172.0.0.01:8080";
using (WebApplication.Start<Startup>(url))
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
}
}
class Startup
{
public void Configuration(IAppBuilder app)
{
// This will map out to http://localhost:8080/signalr by default
// This means a difference in the client connection.
app.MapHubs();
}
}
public class MyHub : Hub
{
public void Send(string message)
{
Clients.All.addMessage(message);
}
}
}
我只是不理解使用(WebApplication.Start<Startup>(url))
的这一行
我也不明白Startup class
任何人都可以帮助我理解上面的代码。感谢
答案 0 :(得分:2)
此处显示的Startup
类是您配置SignalR的位置;在这种情况下,它使用的基本方法只是找到所有集线器(调用程序集中的Hub
子类)并将它们放入混合名称 - 但更精细的配置是可能的。 WebApplication.Start<Startup>(url)
正在调用所有配置代码,以及获取监听器等的管道来完成一些实际工作。最终,Hub
在这里有令人感兴趣的代码,即代码所在的位置。