繁体   English   中英

如何创建在线signalR服务器

[英]How to create online signalR server

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

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

  • Azure Web Apps
  • Azure虚拟机
  • Azure云服务

主持SignalR Hub最“自然”的方式是ASP.Net网站,无论网站是否天蓝,都无关紧要。 所以你不会在那里找到任何复杂的场景。

您的聊天中心代码可能如下(来自signalR docs的代码)

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 App后,您可以随时随地托管它,我建议您在Azure Web App中托管该应用程序。

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

教程:SignalR 2入门

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

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

希望这可以帮助。

祝你好运!

更新:关于自托管应用程序似乎有些混乱。

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

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

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

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

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM