关于在控制台应用程序中托管SignalR

本文关键字:SignalR 应用程序 控制台 | 更新日期: 2023-09-27 18:13:14

我得到了一个在控制台应用程序中托管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的用法

任何人都可以帮助我理解上面的代码。由于

关于在控制台应用程序中托管SignalR

这里显示的Startup类是您配置SignalR的地方;在这种情况下,它使用的是一种基本的方法,即找到所有的集线器(调用程序集中的Hub子类)并按名称将它们放入混合-但更微妙的配置是可能的。WebApplication.Start<Startup>(url)调用所有的配置代码,以及获取侦听器的管道等来完成一些实际工作。最终,Hub在这里有有趣的代码,即你的代码去哪里。