Tôi đã thấy cách bạn có thể bẫy sự kiện ngắt kết nối ở phía máy khách với SignalR bằng cách liên kết với sự kiện .disconnect.SignalR: phát hiện trạng thái kết nối trên máy khách
Bây giờ tôi đã thực hiện việc này, tôi muốn đưa ứng dụng khách vào "chu kỳ chờ kết nối lại" nơi liên tục cố gắng kết nối cho đến khi thành công hoặc người dùng hủy. Liệu các trung tâm phơi bày một tài sản nhà nước kết nối? Tôi đang suy nghĩ điều gì đó giống như (mã giả)
var isConnected;
function onConnected() { isConnected = true; }
hub.disconnect = function() { while(hub.notconnected) { connect(); }
Tôi không nghĩ rằng điều này là hoàn toàn đúng sự thật. Nếu tôi mất kết nối với máy chủ của tôi thì cuối cùng nó sẽ từ bỏ việc cố gắng kết nối lại và buộc tôi phải khởi động lại kết nối theo cách thủ công. Tôi sẽ không nói nó luôn luôn cố gắng kết nối lại. – KingOfHypocrites
Lưu ý rằng các trạng thái có thể được liệt kê trên '$ .signalR.connectionState', ví dụ' $ .signalR.connectionState.connected'. Bạn có thể thấy cách sử dụng hiện tại của 'stateChanged' [ở đây] (https://github.com/SignalR/SignalR/wiki/SignalR-JS-Client#connectionstatechanged-handlerchange-) –
Nhìn vào mã [client] của khách hàng (https: //github.com/SignalR/SignalR/blob/master/src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.transports.longPolling.js), tôi không tìm thấy bất kỳ tham chiếu nào đến điều kiện thực sự sẽ dừng kết nối lại sau một khoảng thời gian. Tuy nhiên, có một tính toán ngược lại dẫn đến thời gian lâu hơn và lâu hơn giữa các lần thử kết nối lại không thành công, cho đến khi có kết nối thành công. Vì vậy, tôi tin rằng nó sẽ cố gắng kết nối lại "mãi mãi" miễn là trang JS vẫn còn trong trình duyệt. – Mazrick