Я разрабатываю клиентское серверное приложение реального времени с использованием SignalR, ASP.NET и С#. Я использую localhost как host и VS2013.
Мои вопросы:
-
Почему, если я закрыть сервер, на веб-клиенте происходит событие Подключить?
-
Событие "Отключить" происходит только после 40 + секунд. Как уменьшить это время?
-
Мне нужно, чтобы клиент подключился к серверу при запуске. Событие "Повторное подключение" должно выполняться только в фиксированном интервале. Если время пересоединения "Повторное подключение" завершено, клиент должен подключиться как новый клиент. Как заархивировать эту цель?
Наконец, я хотел бы спросить - как поддерживать связь с помощью SignalR в правильном пути?
Я использую этот код:
С#
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 ?