Запуск сигнала веб-приложения R от веб-API, размещенного на том же сервере - PullRequest
0 голосов
/ 11 января 2019

У меня есть веб-приложение 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?

...