起床和跑步

IIS / .NET 版本要求请参见此处

SignalR 2+

  1. 安装 NuGet 软件包 Microsoft.AspNet.SignalR(这是整个 SignalR 解决方案),它会要求你为其他软件包安装任何依赖项。接受条款并安装它们。

  2. 现在我们已经有了生成我们自己的 SignalR Hub 所需的 .dlls 和客户端脚本,让我们创建一个。单击你的 Web 项目,添加名为 HubsSignalR 的文件夹,然后在其中添加一个类。我将我的名字命名为 MessagingHub.cs NameOfYourChoosing Hub

  3. 我们需要从我们通过 NuGet 下载的 SignalR dll 中的基类 Hub 派生。代码看起来像:

    [HubName("messagingHub")]
    public class MessagingHub : Hub
    {
        //empty hub class
    }
    

    在我们的 Startup.cs 类中,我们可以让 IAppBuilder 知道我们将使用 SignalR。

    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
            ConfigureAuth(app);
        }
    }
    
  4. 为了在客户端上引用我们的集线器代码,我们需要导入/引用 2 个脚本(除了显而易见的 jQuery 参考)。主要的 jQuery.signalR-version.js 文件和 SignalR 专门为我们的集线器生成的 hubs.js 文件。这些资源可能如下所示:

    // script tag src="/YourAppPath/scripts/jquery-1.6.4.js"
    // script tag src="/YourAppPath/scripts/jquery.signalR-2.2.0.js"
    // script tag src="/YourAppPath/signalr/hubs"
    
  5. 由于 SignalR 的 JavaScript 构建在 jQuery 之上(需要> = v1.6.4),因此连接和断开连接到集线器的代码应该看起来相当简单。在这里它的所有’荣耀(包裹在 IIFE 中):

    $(function() {
        //notice the camel casing of our hub name corresponding to the [HubName()] attribute on the server
        var connection = $.connection.messagingHub;
    
        $.connection.hub.start().done(function () {
            alert("Connection Successful!");
        }).fail(function (reason) {
            console.log("SignalR connection failed: " + reason);
        });
    });
    
  6. 截至目前,我们应该能够运行应用程序并建立与 SignalR 集线器的连接。