From 58c9a6eb3597de25ef01bdce1292c9a1560dd4cb Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Fri, 15 Feb 2013 20:51:23 -0800 Subject: [PATCH] Don't catch exceptions thrown from onReceived handlers in JS - We still catch these exceptions in the .NET client since there seems to be no better way to allow developers to observe exceptions thrown in the Received handler #1530 --- .../Scripts/jquery.signalR.js | 8 +- .../Scripts/jquery.signalR.min.js | 2 +- .../Scripts/jquery.signalR.js | 8 +- .../Scripts/jquery.signalR.min.js | 2 +- .../jquery.signalR.transports.common.js | 8 +- .../Scripts/jquery.signalR.js | 8 +- .../FunctionalTests/Hubs/HubProxyFacts.js | 58 ++++++++++++ .../Transports/All/ConnectionFacts.js | 26 ++++++ .../UnitTests/Common/ProcessMessagesFacts.js | 53 +++++++++-- .../Client/HubProxyFacts.cs | 36 ++++++++ .../Server/Connections/ConnectionFacts.cs | 90 +++++++++++++++++++ .../Client/TransportFacts.cs | 72 +++++++++++++++ .../Microsoft.AspNet.SignalR.Tests.csproj | 1 + 13 files changed, 335 insertions(+), 37 deletions(-) create mode 100644 tests/Microsoft.AspNet.SignalR.Tests/Client/TransportFacts.cs diff --git a/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.js b/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.js index 178dafd314..a7b4fd63e2 100644 --- a/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.js +++ b/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.js @@ -881,13 +881,7 @@ if (data.Messages) { $.each(data.Messages, function () { - try { - $connection.triggerHandler(events.onReceived, [this]); - } - catch (e) { - connection.log("Error raising received " + e); - $(connection).triggerHandler(events.onError, [e]); - } + $connection.triggerHandler(events.onReceived, [this]); }); } diff --git a/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.min.js b/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.min.js index 5764988e83..a880979ecf 100644 --- a/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.min.js +++ b/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.min.js @@ -7,4 +7,4 @@ * https://github.com/SignalR/SignalR/blob/master/LICENSE.md * */ -(function(n,t){"use strict";function l(t,r){var u,f;if(n.isArray(t)){for(u=t.length-1;u>=0;u--)f=t[u],n.type(t)==="object"||n.type(f)==="string"&&i.transports[f]||(r.log("Invalid transport: "+f+", removing it from the transports list."),t.splice(u,1));t.length===0&&(r.log("No transports remain within the specified transport array."),t=null)}else n.type(t)==="object"||i.transports[t]||t==="auto"||(r.log("Invalid transport: "+t.toString()),t=null);return t}function h(n){return n==="http:"?80:n==="https:"?443:void 0}function o(n,t){return t.match(/:\d+$/)?t:t+":"+h(n)}if(typeof n!="function")throw new Error("SignalR: jQuery not found. Please ensure jQuery is referenced before the SignalR.js file.");if(!t.JSON)throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");var i,s,e=t.document.readyState==="complete",f=n(t),r={onStart:"onStart",onStarting:"onStarting",onReceived:"onReceived",onError:"onError",onConnectionSlow:"onConnectionSlow",onReconnecting:"onReconnecting",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},c=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},u=function(t,i,u){return i===t.state?(t.state=u,n(t).triggerHandler(r.onStateChanged,[{oldState:i,newState:u}]),!0):!1},a=function(n){return n.state===i.connectionState.disconnected},v=function(n){var u,r;n._.configuredStopReconnectingTimeout||(r=function(n){n.log("Couldn't reconnect within the configured timeout ("+n.disconnectTimeout+"ms), disconnecting."),n.stop(!1,!1)},n.reconnecting(function(){var n=this;n.state===i.connectionState.reconnecting&&(u=t.setTimeout(function(){r(n)},n.disconnectTimeout))}),n.stateChanged(function(n){n.oldState===i.connectionState.reconnecting&&t.clearTimeout(u)}),n._.configuredStopReconnectingTimeout=!0)};i=function(n,t,r){return new i.fn.init(n,t,r)},i.events=r,i.changeState=u,i.isDisconnecting=a,i.connectionState={connecting:0,connected:1,reconnecting:2,disconnected:4},i.hub={start:function(){throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g.