Tôi đang sử dụng SignalR trong ứng dụng của mình. Tôi có một ứng dụng phụ thuộc vào mức độ rất lớn trên OnDisconnected()
được gọi chính xác. Và nó được gọi một cách chính xác dưới trường hợp sau đây:Ngắt kết nối SignalR không được gọi là kết nối internet/kết nối lại
public Task OnDisconnected()
{
try
{
DeleteUser(Context.ConnectionId);
return null;
}
catch (Exception ex)
{
return null;
}
}
- Người dùng làm mới trang
- Các người dùng điều hướng đến một trang mới
- Người dùng đóng trình duyệt
Tuy nhiên, nó không được gọi nếu kết nối mạng đột nhiên giảm xuống. Ví dụ, nếu tôi rút dây cáp mạng trên máy khách, hoặc vô hiệu hóa mạng không dây của khách hàng, hoặc rút bộ định tuyến, OnDisconnected()
sẽ không bao giờ được gọi, ngay cả sau một vài phút chờ đợi.
Tôi đã từng làm việc với SignalR nhiều, nhưng tôi không chắc nó không phải là một trong những chức năng của nó để kiểm tra, nếu người dùng vẫn còn kết nối với một trung tâm. Bạn có thể muốn thực hiện bộ đếm thời gian của riêng bạn sẽ đăng xuất người dùng sau (x) phút. – Timsen
Chỉ cần giữ liên kết này, nó có thể hữu ích cho bạn: http://www.dotnetcurry.com/ShowArticle.aspx?ID=826 – Timsen