В моем проекте Angular я использую Signalr для получения данных в реальном времени следующим образом:
var connection = $.hubConnection();
var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');
contosoChatHubProxy.on('addContosoChatMessageToPage', function(userName, message) {
console.log(userName + ' ' + message);
});
connection.start()
.done(function(){ console.log('Now connected, connection ID=' + connection.id); })
.fail(function(){ console.log('Could not connect'); });
connection.stateChanged((state: SignalR.StateChanged) => {
if (state.newState === ConnectionState.Disconnected) {
connection.start()
}
});
Приведенный выше код не совпадает на 100% с моим кодом. Но логика c такая же, запустите соединение и также установите лог пересоединения c.
В моем проекте, исходя из некоторых случаев, мне нужно сбросить соединение, что означает, что мне нужно закрыть существующее соединение и запустить новое.
Я попытался connection.stop()
, но поскольку здесь есть логика повторного подключения c, соединение сначала переходит в состояние отключения и автоматически перезапускается снова.
Существует ли какой-либо другой API со стороны клиента SignalR, может ли он удовлетворить мои требования?