SignalR подключается к нескольким серверам

Возможно подключение с использованием клиента Javascript к нескольким SignalR серверы?

Например:

<script type="text/javascript">
    $.connection.hub.url = 'http://server1.net/signalr';
    var server1Hub = $.connection.server1Hub;

    $.connection.hub.start().done(function () {

    });

    // i need to connect to server2
    $.connection.hub.url = 'http://server2.net/signalr';
    var server2Hub = $.connection.server2Hub;

    $.connection.hub.start().done(function () {

    });
</script>

Попытка подключения (снова) во второй раз выдает ошибку:

'server1Hub' Hub could not be resolved.

Могу ли я создать два экземпляра $.connection? Очевидно, я думаю, изменяя то же самое connection может создать много проблем.

2 ответа

Решение

Используя другое соединение $:

var connection1 = $.connection('/first');
connection1.start();

var connection2 = $.connection('/second');
connection2.start();

Подписка на несколько хабов:

var connection1 = $.hubConnection("'http://server1.net/signalr");
var connection2 = $.hubConnection("http://server2.net/signalr");

var Hub1= connection1.createHubProxy('Hub1');
var Hub2= connection2.createHubProxy('Hub2');

connection1.start();
connection2.start();

Подробнее читайте здесь: здесь, в разделе Определение метода на клиенте (без сгенерированного прокси или при добавлении после вызова метода start)

Спасибо, SilentTremor. Вы сэкономили мне много времени.

Если вы работаете с сгенерированными прокси, вы можете использовать что-то вроде:

var Hub1 = connection1.createHubProxies().<your hub class>

Замените своим собственным классом. Тогда просто получите доступ ко всем функциям сервера из Hub1. Пример:

var Hub1 = connection1.createHubProxies().Chat;
...
Hub1.addMessage(name, message);
Другие вопросы по тегам