Câu hỏi đặt ra là làm cách nào để máy khách JavaScript SignalR có thể phát hiện khi kết nối với máy chủ bị mất?Làm thế nào để xác định ngắt kết nối máy chủ từ máy khách SignalR?
Cảm ơn bạn đã trả lời!
Câu hỏi đặt ra là làm cách nào để máy khách JavaScript SignalR có thể phát hiện khi kết nối với máy chủ bị mất?Làm thế nào để xác định ngắt kết nối máy chủ từ máy khách SignalR?
Cảm ơn bạn đã trả lời!
Một trung tâm có một phương pháp disconnect
mà sẽ cho phép bạn thêm một callback khi ngắt kết nối diễn ra:
myHub.disconnect(function() {
alert('Server has disconnected');
});
Nếu bạn không sử dụng trung tâm thì mã cho phương thức ngắt kết nối wil l giúp bạn:
$(connection).bind("onDisconnect", function (e, data) {
callback.call(connection);
});
Điều này cho biết cú pháp để gắn vào sự kiện onDisconnect của kết nối cơ bản.
Nếu bạn đang sử dụng trung tâm thì hãy triển khai giao diện IDisconnect.
public class ChatHub : Hub, IDisconnect
{
public void Disconnect()
{
Debug.WriteLine(Context.ConnectionId + " disconnected");
}
}
Mở kết nối liên tục, bạn có thể ghi đè lên OnDisconnectAsync, (từ wiki SignalR tại https://github.com/SignalR/SignalR/wiki/PersistentConnection)
public class MyEndPoint : PersistentConnection
{
protected override Task OnDisconnectAsync(string clientId)
{
return Connection.Broadcast("Client " + clientId + " disconncted");
}
}
Bắt đầu với SignalR v0.5.1 nó hoạt động theo cách này:
$.connection.hub.stateChanged(function (change) {
if (change.newState === $.signalR.connectionState.reconnecting) {
console.log("liveFeed is reconnecting!");
}
else if (change.newState === $.signalR.connectionState.connected) {
console.log("liveFeed is connected!");
}
});
Để biết thêm chi tiết kiểm tra trang web này:
http://weblogs.asp.net/davidfowler/archive/2012/06/10/signalr-0-5-1-released.aspx
Các SignalR 2.0 cách để làm điều này là như vậy:
$.connection.hub.disconnected(function() {
console.log('Connection disconnected')
});
dưới đây, làm việc cho tôi:
var connection = $.hubConnection('signalrConnectionUrl');
connection.disconnected(function() {
console.log('Connection disconnected');
});
Tôi đang sử dụng phiên bản: 2.1.2
Xem đường dẫn sau để tham khảo: Link
Bạn có sử dụng signalr với asp.net ? – sinanakyazici
Có, và với mvc 3. – Alexandr