我正在研究一個asp.net mvc項目,我們在不同視圖中使用SignalR進行實時連接。很好的工作,除了在SignalR出現問題時停止執行javascript。通常,如果我的自行託管應用程序關閉或發生其他連接問題,則此錯誤將成爲問題。如何防止signalR錯誤停止進一步執行javascript
GET http://localhost:8081/signalr/hubs net::ERR_CONNECTION_REFUSED List:328
Uncaught TypeError: Cannot read property 'client' of null
如前所述,如果已發生,它阻止我的所有其他的javascript從執行,因此不會使我的看法,或佈局對於這個問題,正確的。有沒有辦法解決這個問題,所以視圖繼續加載並運行其JavaScript?
我的標準視圖應該是這樣的:
@model Services.Models.SomeModel
<script src="~/Scripts/jquery.signalR-2.0.2.js"></script>
<script src="http://localhost:8081/signalr/hubs"></script>
<script src="~/Scripts/signalR.connector.js"></script>
<script src="~/Scripts/signalR.fleet.js"></script>
<div id="page-content">
...
</div>
連接器看起來是這樣的:
$.connection.hub.url = "http://localhost:8081/signalr";
//Enable logging
$.connection.hub.logging = true;
// Proxy created on the fly
var messageHub = $.connection.myHub;
if (messageHub == null)
return null;
messageHub.client.timeEnabled = true;
... ommitted functions ...
$.connection.hub.start(function() {
var id = $('#signalRId').text();
messageHub.server.joinGroup("operationStatus-" + id);
console.log("Joined group: operationStatus-" + $('#signalRId').text());
}).done(function() {
console.log('Now connected, connection ID=' + $.connection.hub.id);
}
).fail(function() { console.log('Could not Connect'); });
感謝拉斯,你理解錯了我!期待明天嘗試這個:) –