2012-02-01 60 views

Trả lời

25

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.

+0

Rất tốt, cảm ơn bạn! – Alexandr

+2

Không sử dụng liên kết ... chỉ cần thực hiện connection.disconnected – davidfowl

+0

Phương thức thích hợp cho điều này bây giờ là '$ .connection.hub.disconnected (gọi lại)' –

12

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"); 
    } 
} 
+2

Cảm ơn, nhưng tôi cần nó ở phía khách hàng ... – Alexandr

+0

Điều này thực sự rất hữu ích như một câu trả lời không liên quan đến câu hỏi, cảm ơn bạn! – Josh

5

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

3

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

Các vấn đề liên quan