我使用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中托管该应用程序.
这是关于如何实现我上面告诉你的步骤的完整/详细教程:
Tutorial: Getting Started with SignalR 2