我有一个使用MVC 5和angular js开发的SPA Web应用程序,以及用于动态数据的Web API,两个应用程序都托管在同一IIS上,但端口不同。我们已在MVC应用程序中使用信号R进行客户端通知。通过Web api,我们正在将一些数据更新到数据库中,这时我们希望使用信号R向客户端发送通知。
我陷入了如何从Web api通知Web应用程序有关更改的问题,该更改将进一步触发信号R将其发送到客户端。
我尝试使用来自Web api的Signal R HubConnection类创建Web应用程序的代理。却不起作用
使用系统;
using Microsoft.AspNet.SignalR.Client;
using Core.Application;
using System.Net;
using Microsoft.AspNet.SignalR.Client.Transports;
using System.Web;
public class SignalRConnectionContext
{
private static IHubProxy HubProxy { get; set; }
private static HubConnection Connection { get; set; }
private static readonly string Host = "";
static SignalRConnectionContext()
{
if (HttpContext.Current != null && HttpContext.Current.Request != null && HttpContext.Current.Request.Url != null)
Host = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/signalr";
else
Host = ApplicationManager.DependencyInjection.Resolve<ISettings>().NotificationSingalServerUrl + "/signalr";
}
public static IHubProxy SetupConnection()
{
if (Connection != null && Connection.State != ConnectionState.Disconnected)
return HubProxy;
if (Connection == null)
{
Connection = new HubConnection(Host);
HubProxy = Connection.CreateHubProxy("SignalHub");
logService.Error("SignalR CreateHubProxy.");
}
try
{
Connection.Start().Wait();
//Connection.Reconnected += OnConnectionReconnet;
return HubProxy;
}
catch (Exception ex)
{
logService.Error("SignalR Connection Error, Message" + ex.Message);
}
return HubProxy;
}
}
任何人都可以建议通过Web api通知Web应用程序的其他方法吗?