如何创建在线signalR服务器

本文关键字:在线 signalR 服务器 创建 何创建 | 更新日期: 2023-09-27 18:26:15

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

如何创建在线signalR服务器

您只需要将您的signalR Hub发布为一个网站,如果您在中托管您的网站并不重要

  • Azure Web应用程序
  • 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);
        }
    }
}

您唯一需要做的就是将集线器放在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();
        }
    }
}

这就差不多了。

创建web应用程序后,您可以在任何地方托管它,我建议您在Azure web应用程序中托管该应用程序。

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

教程:SignalR 2入门

我认为最简单的方法是创建一个Azure Worker Role并使用它来托管服务器。

在这里,您可以找到解释如何在Azure Worker角色中托管OWIN的文档。

希望这能有所帮助。

祝你好运!

更新:对于自托管应用程序,似乎存在一些混淆。

如果你有一个在IIS上运行的ASP.NET网站,那么最简单的方法就是通过Azure WebApps。另一种选择是通过云服务,或者在Azure上创建虚拟机。

但是,如果您确实有一个自托管的OWIN应用程序,那么您必须有一个可以托管OWIN应用软件的辅助角色。在这种情况下,请遵循我提供的文档。

以下是如何创建SignalR自托管应用程序。

因此,关于如何创建SignalR应用程序,您可以在这些方法之间进行选择。

祝你好运!