Мы используем Windows server 2016. У нас есть клиент / веб-приложение, чтобы проверить, работает ли сервер (не остановлен) и, соответственно, отображает кнопку, как подключенную на странице веб-приложения / клиента.
Наш API-интерфейс signalR размещен каквеб-сайт по умолчанию на сервере iis, если мы остановим его, то все равно получим ответ от сервера signalR API.
Примечание: он работает только тогда, когда мы останавливаем весь сервер iss или создаем отдельное веб-приложение, а не веб-сайт по умолчанию.
<input type="text" id="msg" value=" " />
<input type="button" id="send" value="send" />
<div id="message">
</div>
<script src="Scripts/jquery-1.8.3.min.js"></script>
<script src="Scripts/jquery.signalR-1.1.3.min.js"></script>
<script>
var connection = $.hubConnection('http://websitename/WebApi/signalr');
//connection.logging = true;
var proxy = connection.createHubProxy('SignalRHub');
console.log(connection);
console.log(proxy);
connection.stateChanged(function (change) {
console.log(change);
console.log($.signalR.connectionState);
if (change.newState === $.signalR.connectionState.reconnecting) {
console.log("liveFeed is reconnecting!");
}
else if (change.newState === $.signalR.connectionState.connected) {
console.log("liveFeed is connected!");
connection.start().done(function (data) {
console.log('Now connected ', data);
proxy.invoke('GetRealTime');
}).fail(function (er) {
console.log(er);
});
}
while (change.newState === $.signalR.connectionState.disconnected) {
console.log("in while loop")
connection.start().done(function (data) {
console.log('Now connected ', data);
proxy.invoke('GetRealTime');
}).fail(function (er) {
console.log(er);
});
}
});
proxy.on('setRealTime', function (obj) {
var text = $('#message').html();
$('#message').html(JSON.stringify(obj));
});
connection.disconnected(function (data) {
console.log(data);
alert('Server has disconnected');
});
connection.start().done(function (data) {
console.log('Now connected ', data);
proxy.invoke('GetRealTime');
}).fail(function (er) {
console.log(er);
});
</script>