Squeak.ru - шаблоны программирования

Не получать распределенный / разрозненный сайт Angular для общения с SignalR в WebAPI

Я новичок в SignalR, и я пытаюсь интегрировать его с сайтом AngularJS и WebAPI. Я сначала выполнил отличный этот пример. Однако, как я уже упоминал, веб-сайт, над которым я работаю, будет находиться на другом сервере, нежели проект WebAPI.

В моей среде разработки я создал локальный сайт для Angular, размещенный в IIS на localhost: 60000 / 127.0.0.1: 60000, а WebAPI живет на localhost: 31374 (в VS2013 с использованием IIS Express). Это имитирует 2 разные серверы, на которых будут жить проекты.

В моем проекте Angular я пытаюсь подключиться к концентратору SignalR, выполнив следующие действия:

var connection = $.hubConnection();

$.connection.hub.url = "http://localhost:31374/signalr";

//$.connection.url = "/signalr";
//$.conenction.baseUrl = "http://localhost:31374";

this.proxy = connection.createHubProxy('foos');

console.clear();
// start connection
console.log(connection);
connection.start();

this.proxy.on('newFoo', function (data) {
    $rootScope.$emit("newFoo", data);
});

Результат в консоли выглядит так:

Результат консоли при попытке подключиться к signalr

В моем коде вы можете видеть, что я пытаюсь установить URL-адрес концентратора (и в комментариях чуть ниже, я пытался установить свойства объекта подключения вручную). Однако на снимке экрана вы можете видеть, что ни URL-адрес или baseURL - это то, что я установил, на самом деле baseURL по-прежнему указывает на сайт Angular на http://127.0.0.1:60000/ вместо http://localhost:31374/.

Что мне не хватает?


  • Вы устанавливаете hub.url на $ .connection вместо локальной переменной соединения. Вы имели в виду connection.hub.url = "http://localhost:31374/signalr"? 06.05.2015

Ответы:


1

Эта установка выглядит немного странно. В частности, возможно, ваш connection.start() вызов неверен. Я сделал это в Angular с кросс-доменным сервером со следующей настройкой, которая отлично работает

var proxy;

$(function () {

    $.connection.hub.url = 'http://localhost:31374/signalr';

    $.connection.hub.start({ xdomain: true })
        .done(function () { 
            console.log('Connected. connectionId : ' + $.connection.hub.id); 
        })
        .fail(function () {
            console.log('Could not connect!');
        });

    proxy = $.connection.yourServerHubName;

    proxy.client.yourClientHubMethod = function () {
        // your client hub functions
    };
});

Также убедитесь, что вы загружаете правильно сгенерированный файл .js в свой HTML.

<script src="//localhost:31374/signalr/hubs"></script>
06.05.2015
  • Спасибо, Сал, это работает. Хотя мне любопытно - я заметил xdomain, это то, что имеет самое большое значение? 07.05.2015
  • @ Мистер Четверг, я думаю, в вашей ситуации нет. Я действительно думаю, что это было то, как вы настроили клиентское соединение .start. Однако я включил это значение в качестве запасного варианта на тот случай, если вы использовали старую версию signalr, см. этот вопрос для получения дополнительных сведений. Рад, что это работает для тебя, несмотря ни на что 07.05.2015
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...