【问题标题】:Regarding hosting SignalR in console apps关于在控制台应用程序中托管 SignalR
【发布时间】:2013-05-07 14:00:32
【问题描述】:

我得到了一个在控制台应用程序中托管 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&lt;Startup&gt;(url)) 我只是也不明白Startup class的用法

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

【问题讨论】:

标签: c# signalr


【解决方案1】:

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

【讨论】:

  • 我得到的代码中没有名为 WebApplication 的类。
  • @Thomas 是的,有;它在Microsoft.Owin.Hosting 命名空间和Microsoft.Owin.Hosting.dll 中,大概是通过Microsoft.Owin.Hosting
  • 如果我将上面的代码复制到我的控制台应用程序中,它是否可以正常运行?
  • 假设我在网络应用程序中有一个中心,并通过该中心消息推送到我网站中的其他页面。所以我需要知道我是否想将数据从网络应用程序推送到我的控制台应用程序,那么我是否需要自我托管?如果可能的话,告诉我我需要在控制台端做什么,因此可以从我的网络应用程序中的集线器发送和接收消息。谢谢
  • @Mou 你是同一个用户吗?还是这是一个不相关的问题?
猜你喜欢
  • 2018-12-24
  • 2017-07-03
  • 1970-01-01
  • 2014-07-01
  • 2012-10-21
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 2012-07-02
相关资源
最近更新 更多