Я пишу веб-приложение и использует SignalR. На сервере C# у меня есть два концентратора. На самом деле это должно быть два, иначе я бы просто объединил их и решил проблему.Сторона сервера Signalr, OnDisconnect вызывает только 1 концентратор
Проблема, с которой я столкнулся, заключается в том, что, хотя я знаю, что клиентская сторона SignalR, концентраторы будут совместно использовать соединение. Проблема, с которой я сталкиваюсь, заключается в том, что когда я закрываю браузер или останавливаю вызов на клиенте. Только один из моих событий OnDisconnect (bool stopCalled) на моей стороне будет срабатывать.
Я как-то ожидал, что оба будут срабатывать, когда клиент отключится.
Могу ли я быть глупым или что-то делать неправильно? Любая информация будет принята с благодарностью.
Луи
Согласно Документов (http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs- api-guide-server # onreconnected) OnDisconnected может не вызываться в определенных сценариях.Не зная подробностей о том, как/что вы хотите сделать, когда клиент отключен, вам будет сложно помочь. Если вам действительно нужно иметь «2 соединения» от клиента к серверу одновременно, возможно, используйте группу? Например. ожидают Groups.Add (Context.ConnectionId, "line1"); ожидают Groups.Add (Context.ConnectionId, «строка2»); – alpinescrambler
Привет, я видел эту часть документации, но информация вокруг нее немного отрывочна. В основном у меня есть следующее. У меня на сервере два класса, наследующие от Hub. оба этих класса реализуют методы OnConnect, OnDisconnect. Оба этих класса затем сохраняют детали в HubClientCache. Идентификатор клиента встает при вызове OnConnect и удаляется клиент при вызове OnDisconnect. –
Один хаб обрабатывает не что иное, как довольно сложную систему присутствия пользователей. А второй - для связи между пользователями. В клиенте javascript я дважды вызываю метод запуска. Один для каждого из концентраторов. Оба концентратора на сервере отлично справляются с событием OnConnect на этом этапе. Но при закрытии браузера, например, только один из серверов-концентраторов видит вызванный метод OnDisconnect. –