передать относительный URL в соединение концентратора signalR - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь реализовать signalR в angularJS, Я хочу передать относительный URL-адрес для подключения к концентратору, но он создает текущий URL-адрес (на котором размещено мое угловое приложение)

URL моего базового API: http://localhost:81/NrsService/api/TestSignal

Мое угловое приложение работает на

http://localhost:81

Вот моя настройка сигнала R:

$.connection.hub.url = "/NrsService/api/TestSignal";
//Getting the connection object
connection = $.hubConnection();

Как будто он отправляет запрос на http://localhost:81/signalr/negotiate?, но я хочу, чтобы он был http://localhost:81/NrsService/api/TestSignal/negotiate?

1 Ответ

0 голосов
/ 12 февраля 2019

Вы должны отредактировать сгенерированный код JavaScript, в котором определен клиентский прокси. Начиная с SignalR 2.4.0, существует функция createHubProxies, в которой вы должны найти следующую строку кода:

signalR.hub = $.hubConnection("/signalr", { useDefaultPath: false });

Измените его на следующее, чтобы "/ signalr" не заканчивался в ваших запросах:

signalR.hub = $.hubConnection("", { useDefaultPath: false });

После этого вы можете просто изменить URL, который должен называться так, как вы указали в своем вопросе, например ::100100

$.connection.hub.url = "/NrsService/api/TestSignal";

Если вы также хотите изменить этот URL-адрес динамически, вы можете использовать свойства document.location. В моем случае я сделал что-то вроде этого:

var subPath = document.location.pathname.substr(0, document.location.pathname.lastIndexOf("/"));
$.connection.hub.url = subPath;      // subpath equals to "/NrsService/api"

Надеюсь, это поможет.

...