我正在使用SignalR、ASP.NET和C#开发一个实时的客户端/服务器应用程序。我正在使用本地主机和VS2013作为托管。
我的问题是:
为什么如果我关闭服务器,在Web客户端上会发生“重新连接”事件?
只有40多秒后,“断开连接”事件才会发生。如何缩短这个时间?
我需要客户端在启动时连接到服务器。只有当“重新连接”间隔时间达到固定间隔时,才应触发“重新连接”事件。如果“重新连接”间隔时间超过,客户端应该作为新客户端连接。如何实现这个目标?
最后,我想问 - 如何以正确的方式使用SignalR保持连接?
我正在使用以下代码:
C#
public override Task OnDisconnected()
{
clientList.RemoveAt(nIndex);
Console.WriteLine("Disconnected {0}\n", Context.ConnectionId);
return (base.OnDisconnected());
}
public override Task OnReconnected()
{
Console.WriteLine("Reconnected {0}\n", Context.ConnectionId);
return (base.OnReconnected());
}
JavaScript
$.connection.hub.reconnected(function () {
// Html encode display name and message.
var encodedName = $('<div />').text("heartbeat").html();
var now = new Date();
// Add the message to the page.
$('#discussion').append('Reconnected to server: ' + now + '</br>');
});
$.connection.hub.disconnected(function () {
// Html encode display name and message.
var encodedName = $('<div />').text("heartbeat").html();
var now = new Date();
// Add the message to the page.
$('#discussion').append('Disconnected from server: ' + now + '</br>');
});
连接后的输出:
message received from server : Fri Feb 21 2014 10:53:02
关闭服务器后的输出:
Reconnected to server: Fri Feb 21 2014 10:53:22 <-- Why, if i close server ???
Disconnected from server: Fri Feb 21 2014 10:53:53 <-- Why 40+ seconds after the server is closed ?
.On<T>(...)
扩展)? - Killnine.On<T>(...)
配置回调。 - halter73