У меня есть веб-приложение SPA, разработанное с использованием MVC 5 с угловым js, и веб-API для динамических данных, оба приложения размещены на одном и том же IIS, но на другом порту. Мы использовали сигнал R в приложении MVC для уведомления на стороне клиента. Через веб-интерфейс мы обновляем некоторые данные в базе данных и в данный момент хотим отправить уведомление на клиентскую сторону, используя сигнал R.
Я застрял в том, как уведомлять веб-приложение из веб-API об изменениях, которые в дальнейшем будут вызывать сигнал R для отправки его на сторону клиента.
Я пытался создать прокси веб-приложения, используя класс Signal R HubConnection из веб-API. но это не работает
с использованием системы;
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;
}
}
Любой орган может предложить другой способ уведомления веб-приложения из веб-API?