我正在使用帶有聊天模塊的SignalR和帶有角度和AspNet的Ionic項目。 我使用SignalR進行聊天。它運行的很順利,但有些時候我按照下面的屏幕截圖獲得了錯誤,並且因爲它會停止工作。 我在IIS上託管了我的服務,並創建了代理並與客戶端和服務器通信。下面是示例SignalR:出現錯誤:WebSocket已關閉
(function() {
angular
.module('app')
.factory('SignalRFactory', SignalRFactory);
SignalRFactory.$inject = ['$rootScope', 'Hub', 'ionicToast'];
function SignalRFactory($rootScope, Hub, ionicToast) {
var signalRLocal = this;
var serverURL = 'https://serivcerURL.com/signalr';
//Hub setup
var hub = new Hub('CommunicationHub', {
rootPath: serverURL,
listeners: {
'send': function (data) {
console.log("send " + data);
}
},
errorHandler: function (error) {
//Here i am getting that websocket closed error
console.error(error);
}
});
signalRLocal.Connect = function (user) {
console.log("SignalR Connecting as :" + user.UserName);
hub.invoke('connect', user);
};
return signalRLocal;
}
})();
我主持的IIS服務。我搜索的解決方案,並找到像這樣link
我還可以通過使用「長輪詢」與上述鏈路解決方案嘗試按以下
Hub.connection.start({ transport: 'longPolling' });
但我不希望使用「長輪詢「。 所以有人可以幫助我解決這個問題,而不使用'長輪詢'。 有人可以告訴我,我必須在客戶端或IIS級別執行什麼配置。
在連接丟失後,SignalR客戶端是否嘗試重新連接?此外,您可以嘗試[檢測斷開原因](https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/handling-connection-lifetime-events #檢測最原因換一個-斷開)。如果可能的話,您也可以從您的Closed事件處理程序(JavaScript客戶端上的「disconnect」事件處理程序)調用Start方法來啓動一個新的連接。 –
yes SignalR嘗試重新連接,它也被連接 –