Как определить, что клиент закрыл браузер на стороне сервера Blazor (соединение через веб-сокет закрыто)? - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь определить, когда клиент отключается от приложения на стороне сервера Blazor;это, вероятно, будет равно закрытию соединения через веб-сокет. Можете ли вы предложить способ обнаружения такого события на стороне сервера?

1 Ответ

0 голосов
/ 02 октября 2019

Я проверил функциональность ASP.NET Core 3.0 и проверил, что действительно возможно обнаружить событие, когда пользователь отходит от компонента или когда браузер закрыт. Правильный шаблон разработки - использовать код Razor за файлом:

AddressBase.razor.cs:

public class AddressBase : ComponentBase, IDisposable
{
        void IDisposable.Dispose()
        {
            Console.WriteLine("Disposing AddressBase.");
        }
}

AddressBase.razor:

@page "/address"
@inherits AddressBase

<h1>Address component</h1>

The Dispose ()Функция будет активирована для всех отображаемых компонентов.

Я должен подчеркнуть хорошую функцию - пока компонент отображается браузером, метод Dispose () не вызывается при обработке действий в этом компоненте (например, пользователь использует элементы управления внутри этого компонента, которые запускают события на стороне сервера). Поэтому легко правильно определить фактическое событие, которое нам нужно, с какого-либо родительского или основного элемента управления, который всегда отображается.

...