我需要检测用户何时使用signalr连接和断开连接。
我有这两个集线器方法:
public void Say(string message)
{
Trace.WriteLine(message + " - " + Context.ConnectionId);
}
public void Goodbye(string message)
{
Trace.WriteLine(message + " - " + Context.ConnectionId);
}
我已经实现了Say
方法,它负责检测如下连接:
$.connection.hub
.start()
.done(function () {
hub.server.say("Hello SignalR");
});
但我如何检测断开连接?
2条答案
按热度按时间daolsyd01#
将此覆盖方法添加到
Hub
类中:这将在服务器端处理和记录断开,而我认为在
client
端跟踪它没有多大意义,因为您的SignalR会话不太可能从服务器端终止-see here。编辑有关
@stuartd
的注解:您还可以覆盖因此您将能够跟踪客户端尝试重新连接到服务器并成功的情况。
编辑#2:那么您当然可以使用相同的机制来跟踪
OnConnected
事件因此,所有跟踪代码都方便地保存在服务器端,这在客户端登录到集线器,但由于某种原因无法执行您用来跟踪记录状态方法时更加健壮
pkwftd7m2#
在AspNetCore.信号R中