如何创建在线SignalR服务器

sam*_*ovS 5 c# azure signalr

我已经使用Signalr和Windows Forms构建了一个简单的聊天应用程序,但是我的应用程序是自托管的,并且只能在我的本地主机地址上运行,如何在azure上在线上传服务器并将桌面客户端应用程序连接到它?我刚刚开始学习Signalr。我已经在Google上进行了一些研究,但找不到能回答我问题的任何东西。

Jua*_*anK 2

您只需将您的 signalR Hub 发布为网站,无论您是否将您的网站托管在

  • Azure 网络应用程序
  • Azure 虚拟机
  • Azure云服务

托管 SignalR Hub 最“自然”的方式是 ASP.Net 网站,无论该网站是否位于 Azure 上。所以你不会在那里找到任何复杂的场景。

您的聊天中心代码可能如下所示(来自 signalR 文档的代码)

using System;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRChat
{
    public class ChatHub : Hub
    {
        public void Send(string name, string message)
        {
            // Call the broadcastMessage method to update clients.
            Clients.All.broadcastMessage(name, message);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您唯一需要做的就是将集线器放入 ASP.NET Web 应用程序中,即使是一个空应用程序。当然,您需要添加 SignalR nuget 包。

在启动类(任何 OWIN 应用程序都需要)中,您必须调用app.MapSignalR如下所示:

using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是全部了。

创建 Web 应用程序后,您可以将其托管在任何您想要的地方,我建议您将应用程序托管在 Azure Web 应用程序中。

这是关于如何实现我上面告诉您的步骤的完整/详细教程:

教程:SignalR 2 入门