了解和处理SignalR连接生命周期
官方网站http://www.asp.net/signalr/overview/hubs-api/handling-connection-lifetime-events
如何处理Hub类中的连接生命周期内的事件
在Hub类中重写OnConnected
, OnDisconnected
,和 OnReconnected
方法
public class ContosoChatHub : Hub{ public override Task OnConnected() { // 在这添加你的代码. // 例如:在一个聊天程序中,记录当前连接的用户ID和名称,并标记用户在线. // 在该方法中的代码完成后,通知客户端建立连接,客户端代码 // start().done(function(){//你的代码}); return base.OnConnected(); } public override Task OnDisconnected() { // 在这添加你的代码. // 例如: 标记用户离线 // 删除连接ID与用户的关联. return base.OnDisconnected(); } public override Task OnReconnected() { // 在这添加你的代码. // 例如:你可以标记用户离线后重新连接,标记为在线 return base.OnReconnected(); }}
每当浏览器导航到一个新的页面,就会建立一个新的连接,这意味着SignalR将在OnConnected
()后,执行OnDisconnected
()方法,
SignalR在创建新连接后,总是创建新的连接ID.
当连接暂停后,SignalR调用OnReconnected() 方法使连接恢复,
()方法调用后,SignalR不能自动重新连接,例如浏览器导航到了新的网页,因此,可以指定用户事件顺序为: OnConnected
, OnReconnected
, OnDisconnected
;或者 OnConnected
, OnDisconnected
.
事件,可以查阅如何处理SignalR生命周期