我在控制台应用程序中创建了SignalR功能。我可以从客户端调用服务器功能,但是当我尝试从服务器向客户端发送消息时,服务器控制台正在关闭。
以下是我的代码:
服务器代码
Hub继承类
中使用的代码[HubName("TestHub")]
public class TestHub: Hub
{
public void NotifyAllClients()
{
Clients.Caller.notify();
}
}
启动类
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
using Microsoft.Owin.Cors;
using Microsoft.AspNet.SignalR;
[assembly: OwinStartup(typeof(ConsoleApp1.Startup))]
namespace ConsoleApp1
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
主类
static void Main(string[] args)
{
string url = @"http://localhost:8080/";
using (WebApp.Start<Startup>(url))
{
Console.WriteLine(string.Format("Server running at {0}", url));
Console.ReadLine();
}
}
客户代码
IHubProxy _hub;
string url = @"http://localhost:8080/";
var connection = new HubConnection(url);
_hub = connection.CreateHubProxy("TestHub");
connection.Start();
_hub.On("notify", () => Console.WriteLine("Notified!"));