Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'release'

commit 3a219c101587333d562f04f30903d50ad9773e1c 2 parents af938bc + c213737
@DamianEdwards DamianEdwards authored
Showing with 10,312 additions and 3,038 deletions.
  1. +1 −0  .gitignore
  2. BIN  .nuget/NuGet.exe
  3. +10 −5 .nuget/packages.config
  4. +108 −6 Microsoft.AspNet.SignalR.sln
  5. +5 −0 build.cmd
  6. +84 −28 build/Build.proj
  7. +3 −3 build/Microsoft.AspNet.SignalR.versions.targets
  8. +0 −227 build/Microsoft.Bcl.Build.targets
  9. +10 −6 nuspecs/Microsoft.AspNet.SignalR.Client.nuspec
  10. +1 −1  nuspecs/Microsoft.AspNet.SignalR.Redis.nuspec
  11. +10 −10 samples/Microsoft.AspNet.SelfHost.Samples/Microsoft.AspNet.SelfHost.Samples.csproj
  12. +6 −6 samples/Microsoft.AspNet.SelfHost.Samples/packages.config
  13. +12 −7 ...rosoft.AspNet.SignalR.Client.Silverlight.Samples/Microsoft.AspNet.SignalR.Client.Silverlight.Samples.csproj
  14. +15 −0 samples/Microsoft.AspNet.SignalR.Client.Silverlight.Samples/app.config
  15. +7 −7 samples/Microsoft.AspNet.SignalR.Client.Silverlight.Samples/packages.config
  16. +14 −7 samples/Microsoft.AspNet.SignalR.Client.WP8.Samples/Microsoft.AspNet.SignalR.Client.WP8.Samples.csproj
  17. +14 −14 samples/Microsoft.AspNet.SignalR.Client.WP8.Samples/app.config
  18. +6 −6 samples/Microsoft.AspNet.SignalR.Client.WP8.Samples/packages.config
  19. +7 −3 ...SignalR.Client.WindowsStoreCSharp.Samples/Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples.csproj
  20. +1 −1  samples/Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples/app.config
  21. +6 −6 samples/Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples/packages.config
  22. +6 −6 samples/Microsoft.AspNet.SignalR.LoadTestHarness/Microsoft.AspNet.SignalR.LoadTestHarness.csproj
  23. +2 −2 samples/Microsoft.AspNet.SignalR.LoadTestHarness/packages.config
  24. +7 −7 samples/Microsoft.AspNet.SignalR.Samples/App_Start/Startup.cs
  25. +11 −4 samples/Microsoft.AspNet.SignalR.Samples/Hubs/MessageLoops/MessageLoops.js
  26. +13 −12 samples/Microsoft.AspNet.SignalR.Samples/Microsoft.AspNet.SignalR.Samples.csproj
  27. +1 −1  samples/Microsoft.AspNet.SignalR.Samples/Scripts/hubs.js
  28. +16 −0 samples/Microsoft.AspNet.SignalR.Samples/Web.config
  29. +6 −6 samples/Microsoft.AspNet.SignalR.Samples/packages.config
  30. +2 −2 src/Common/CommonVersionInfo.cs
  31. +55 −73 src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.core.js
  32. +132 −14 src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.transports.common.js
  33. +7 −5 src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.transports.foreverFrame.js
  34. +19 −14 src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.transports.longPolling.js
  35. +7 −6 src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.transports.serverSentEvents.js
  36. +14 −12 src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.transports.webSockets.js
  37. +1 −1  src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.version.js
  38. +38 −17 src/Microsoft.AspNet.SignalR.Client.Portable/Microsoft.AspNet.SignalR.Client.Portable.csproj
  39. +12 −0 src/Microsoft.AspNet.SignalR.Client.Portable/Properties/AssemblyInfo.cs
  40. +18 −18 src/Microsoft.AspNet.SignalR.Client.Portable/app.config
  41. +6 −6 src/Microsoft.AspNet.SignalR.Client.Portable/packages.config
  42. +102 −0 src/Microsoft.AspNet.SignalR.Client.Store/Microsoft.AspNet.SignalR.Client.Store.csproj
  43. +17 −0 src/Microsoft.AspNet.SignalR.Client.Store/Properties/AssemblyInfo.cs
  44. +17 −0 src/Microsoft.AspNet.SignalR.Client.Store/Resources.cs
  45. +126 −0 src/Microsoft.AspNet.SignalR.Client.Store/Resources.resw
  46. +13 −0 src/Microsoft.AspNet.SignalR.Client.Store/Transports/IWebSocketResponse.cs
  47. +22 −0 src/Microsoft.AspNet.SignalR.Client.Store/Transports/MessageReceivedEventArgsWrapper.cs
  48. +50 −0 src/Microsoft.AspNet.SignalR.Client.Store/Transports/WebSocketRequest.cs
  49. +263 −0 src/Microsoft.AspNet.SignalR.Client.Store/Transports/WebSocketTransport.cs
  50. +19 −0 src/Microsoft.AspNet.SignalR.Client.Store/app.config
  51. +6 −0 src/Microsoft.AspNet.SignalR.Client.Store/packages.config
  52. +20 −5 src/Microsoft.AspNet.SignalR.Client.WinRT/Microsoft.AspNet.SignalR.Client.WinRT.csproj
  53. +188 −176 src/Microsoft.AspNet.SignalR.Client.WinRT/Resources.resw
  54. +33 −11 src/Microsoft.AspNet.SignalR.Client/Connection.cs
  55. +16 −7 src/Microsoft.AspNet.SignalR.Client/HeartBeatMonitor.cs
  56. +7 −11 src/Microsoft.AspNet.SignalR.Client/Http/HttpHelper.cs
  57. +1 −1  src/Microsoft.AspNet.SignalR.Client/HubConnection.cs
  58. +10 −0 src/Microsoft.AspNet.SignalR.Client/Infrastructure/ITaskMonitor.cs
  59. +23 −0 src/Microsoft.AspNet.SignalR.Client/Infrastructure/SlowCallbackException.cs
  60. +3 −1 src/Microsoft.AspNet.SignalR.Client/Infrastructure/StartException.cs
  61. +2 −0  src/Microsoft.AspNet.SignalR.Client/Infrastructure/StreamExtensions.cs
  62. +107 −0 src/Microsoft.AspNet.SignalR.Client/Infrastructure/TaskQueueMonitor.cs
  63. +0 −11 src/Microsoft.AspNet.SignalR.Client/Infrastructure/ThreadSafeInvoker.cs
  64. +28 −33 src/Microsoft.AspNet.SignalR.Client/Infrastructure/TransportAbortHandler.cs
  65. +61 −34 src/Microsoft.AspNet.SignalR.Client/Infrastructure/TransportInitializationHandler.cs
  66. +291 −0 src/Microsoft.AspNet.SignalR.Client/Infrastructure/UrlBuilder.cs
  67. +5 −5 src/Microsoft.AspNet.SignalR.Client/Microsoft.AspNet.SignalR.Client.csproj
  68. +39 −3 src/Microsoft.AspNet.SignalR.Client/Resources.Designer.cs
  69. +12 −0 src/Microsoft.AspNet.SignalR.Client/Resources.resx
  70. +1 −1  src/Microsoft.AspNet.SignalR.Client/Transports/AutoTransport.cs
  71. +215 −0 src/Microsoft.AspNet.SignalR.Client/Transports/ClientTransportBase.cs
  72. +18 −117 src/Microsoft.AspNet.SignalR.Client/Transports/HttpBasedTransport.cs
  73. +0 −1  src/Microsoft.AspNet.SignalR.Client/Transports/IClientTransport.cs
  74. +0 −54 src/Microsoft.AspNet.SignalR.Client/Transports/LongPolling/NegotiateInitializer.cs
  75. +0 −214 src/Microsoft.AspNet.SignalR.Client/Transports/LongPolling/PollingRequestHandler.cs
  76. +206 −140 src/Microsoft.AspNet.SignalR.Client/Transports/LongPollingTransport.cs
  77. +38 −99 src/Microsoft.AspNet.SignalR.Client/Transports/ServerSentEventsTransport.cs
  78. +8 −208 src/Microsoft.AspNet.SignalR.Client/Transports/TransportHelper.cs
  79. +1 −1  src/Microsoft.AspNet.SignalR.Client45/Http/DefaultHttpClient.cs
  80. +24 −5 src/Microsoft.AspNet.SignalR.Client45/Microsoft.AspNet.SignalR.Client45.csproj
  81. +4 −0 src/Microsoft.AspNet.SignalR.Client45/Properties/AssemblyInfo.cs
  82. +60 −114 src/Microsoft.AspNet.SignalR.Client45/Transports/WebSocketTransport.cs
  83. +46 −0 src/Microsoft.AspNet.SignalR.Client45/Transports/WebSockets/ClientWebSocketHandler.cs
  84. +4 −1 src/Microsoft.AspNet.SignalR.Core/DefaultDependencyResolver.cs
  85. +59 −11 src/Microsoft.AspNet.SignalR.Core/Hub.cs
  86. +11 −5 src/Microsoft.AspNet.SignalR.Core/Hub`T.cs
  87. +0 −74 src/Microsoft.AspNet.SignalR.Core/Hubs/HubBase.cs
  88. +6 −7 src/Microsoft.AspNet.SignalR.Core/Hubs/HubDispatcher.cs
  89. +6 −2 src/Microsoft.AspNet.SignalR.Core/Hubs/HubInvocationProgress.cs
  90. +1 −1  src/Microsoft.AspNet.SignalR.Core/Hubs/IHub.cs
  91. +6 −4 src/Microsoft.AspNet.SignalR.Core/Hubs/Lookup/ReflectedHubDescriptorProvider.cs
  92. +1 −1  src/Microsoft.AspNet.SignalR.Core/Hubs/Pipeline/HubPipelineModule.cs
  93. +34 −11 src/Microsoft.AspNet.SignalR.Core/Hubs/TypedClientBuilder.cs
  94. +1 −1  src/Microsoft.AspNet.SignalR.Core/Hubs/TypedHubCallerConnectionContext.cs
  95. +17 −0 src/Microsoft.AspNet.SignalR.Core/IUntrackedDisposable.cs
  96. +91 −0 src/Microsoft.AspNet.SignalR.Core/Infrastructure/AckSubscriber.cs
  97. +12 −17 src/Microsoft.AspNet.SignalR.Core/Infrastructure/Connection.cs
  98. +4 −0 src/Microsoft.AspNet.SignalR.Core/Infrastructure/ConnectionManager.cs
  99. +20 −1 src/Microsoft.AspNet.SignalR.Core/Infrastructure/IPerformanceCounterManager.cs
  100. +62 −5 src/Microsoft.AspNet.SignalR.Core/Infrastructure/PerformanceCounterManager.cs
  101. +0 −6 src/Microsoft.AspNet.SignalR.Core/Infrastructure/PrefixHelper.cs
  102. +1 −1  src/Microsoft.AspNet.SignalR.Core/Infrastructure/ProtocolResolver.cs
  103. +47 −11 src/Microsoft.AspNet.SignalR.Core/Infrastructure/TaskQueue.cs
  104. +12 −13 src/Microsoft.AspNet.SignalR.Core/Messaging/MessageBus.cs
  105. +2 −2 src/Microsoft.AspNet.SignalR.Core/Messaging/MessageBusExtensions.cs
  106. +1 −1  src/Microsoft.AspNet.SignalR.Core/Messaging/ScaleoutMessageBus.cs
  107. +10 −0 src/Microsoft.AspNet.SignalR.Core/Messaging/ScaleoutStore.cs
  108. +9 −8 src/Microsoft.AspNet.SignalR.Core/Messaging/ScaleoutStream.cs
  109. +9 −7 src/Microsoft.AspNet.SignalR.Core/Microsoft.AspNet.SignalR.Core.csproj
  110. +3 −3 src/Microsoft.AspNet.SignalR.Core/Owin/OwinWebSocketHandler.cs
  111. +1 −1  src/Microsoft.AspNet.SignalR.Core/Owin/ServerRequest.cs
  112. +19 −11 src/Microsoft.AspNet.SignalR.Core/Owin/WebSockets/WebSocketHandler.cs
  113. +3 −3 src/Microsoft.AspNet.SignalR.Core/Owin/WebSockets/WebSocketMessageReader.cs
  114. +20 −11 src/Microsoft.AspNet.SignalR.Core/PersistentConnection.cs
  115. +3 −0  src/Microsoft.AspNet.SignalR.Core/Properties/AssemblyInfo.cs
  116. +3 −26 src/Microsoft.AspNet.SignalR.Core/Resources.Designer.cs
  117. +0 −11 src/Microsoft.AspNet.SignalR.Core/Resources.resx
  118. +1 −1  src/Microsoft.AspNet.SignalR.Core/Scripts/hubs.js
  119. +222 −69 src/Microsoft.AspNet.SignalR.Core/TaskAsyncHelper.cs
  120. +123 −0 src/Microsoft.AspNet.SignalR.Core/TaskAwaiterHelper.cs
  121. +17 −1 src/Microsoft.AspNet.SignalR.Core/Transports/ForeverFrameTransport.cs
  122. +16 −30 src/Microsoft.AspNet.SignalR.Core/Transports/ForeverTransport.cs
  123. +1 −1  src/Microsoft.AspNet.SignalR.Core/Transports/HttpRequestLifeTime.cs
  124. +10 −0 src/Microsoft.AspNet.SignalR.Core/Transports/ITrackingConnection.cs
  125. +9 −0 src/Microsoft.AspNet.SignalR.Core/Transports/ITransport.cs
  126. +47 −3 src/Microsoft.AspNet.SignalR.Core/Transports/LongPollingTransport.cs
  127. +19 −0 src/Microsoft.AspNet.SignalR.Core/Transports/ServerSentEventsTransport.cs
  128. +32 −3 src/Microsoft.AspNet.SignalR.Core/Transports/TransportDisconnectBase.cs
  129. +3 −1 src/Microsoft.AspNet.SignalR.Core/Transports/TransportHeartBeat.cs
  130. +17 −4 src/Microsoft.AspNet.SignalR.Core/Transports/WebSocketTransport.cs
  131. +2 −2 src/Microsoft.AspNet.SignalR.Core/packages.config
  132. +38 −2 src/Microsoft.AspNet.SignalR.Crank/Client.cs
  133. +17 −0 src/Microsoft.AspNet.SignalR.Crank/DefaultConnectionFactory.cs
  134. +16 −0 src/Microsoft.AspNet.SignalR.Crank/IConnectionFactory.cs
  135. +12 −8 src/Microsoft.AspNet.SignalR.Crank/Microsoft.AspNet.SignalR.Crank.csproj
  136. +5 −5 src/Microsoft.AspNet.SignalR.Crank/packages.config
  137. +2 −2 src/Microsoft.AspNet.SignalR.Redis/DependencyResolverExtensions.cs
  138. +26 −0 src/Microsoft.AspNet.SignalR.Redis/IRedisConnection.cs
  139. +17 −6 src/Microsoft.AspNet.SignalR.Redis/Microsoft.AspNet.SignalR.Redis.csproj
  140. +6 −0 src/Microsoft.AspNet.SignalR.Redis/Properties/AssemblyInfo.cs
  141. +135 −0 src/Microsoft.AspNet.SignalR.Redis/RedisConnection.cs
  142. +0 −17 src/Microsoft.AspNet.SignalR.Redis/RedisConnectionClosedException.cs
  143. +8 −2 src/Microsoft.AspNet.SignalR.Redis/RedisMessage.cs
  144. +121 −108 src/Microsoft.AspNet.SignalR.Redis/RedisMessageBus.cs
  145. +14 −10 src/Microsoft.AspNet.SignalR.Redis/RedisScaleoutConfiguration.cs
  146. +90 −0 src/Microsoft.AspNet.SignalR.Redis/Resources.Designer.cs
  147. +129 −0 src/Microsoft.AspNet.SignalR.Redis/Resources.resx
  148. +1 −1  src/Microsoft.AspNet.SignalR.Redis/packages.config
  149. +2 −2 src/Microsoft.AspNet.SignalR.ServiceBus/Microsoft.AspNet.SignalR.ServiceBus.csproj
  150. +15 −1 src/Microsoft.AspNet.SignalR.SqlServer/DbOperation.cs
  151. +2 −2 src/Microsoft.AspNet.SignalR.SqlServer/Microsoft.AspNet.SignalR.SqlServer.csproj
  152. +8 −1 src/Microsoft.AspNet.SignalR.SqlServer/ObservableDbOperation.cs
  153. +9 −2 src/Microsoft.AspNet.SignalR.SqlServer/SqlMessageBus.cs
  154. +16 −6 src/Microsoft.AspNet.SignalR.SqlServer/SqlReceiver.cs
  155. +2 −0  src/Microsoft.AspNet.SignalR.SqlServer/SqlStream.cs
  156. +2 −2 src/Microsoft.AspNet.SignalR.Stress/Microsoft.AspNet.SignalR.Stress.csproj
  157. +1 −1  src/Microsoft.AspNet.SignalR.Stress/Performance/RedisMessageBusRun.cs
  158. +4 −4 src/Microsoft.AspNet.SignalR.SystemWeb/Microsoft.AspNet.SignalR.SystemWeb.csproj
  159. +2 −2 src/Microsoft.AspNet.SignalR.SystemWeb/packages.config
  160. +3 −58 src/Microsoft.AspNet.SignalR.Utils/Commands/GenerateHubProxyCommand.cs
  161. +12 −4 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Microsoft.AspNet.SignalR.Client.JS.Tests.csproj
  162. +3 −0  tests/Microsoft.AspNet.SignalR.Client.JS.Tests/NetworkMock/jquery.network.mock.websocket.js
  163. +3 −0  tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Scripts/jquery.network.mock.js
  164. +9 −9 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/FunctionalTests/Common/ResponseRedirectionFacts.js
  165. +1 −2  tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/FunctionalTests/Hubs/HubGroupFacts.js
  166. +2 −5 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/FunctionalTests/Transports/All/ConnectionFacts.js
  167. +65 −0 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/FunctionalTests/Transports/All/ConnectionStateFacts.js
  168. +6 −4 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/FunctionalTests/Transports/ForeverFrame/FFConnectFacts.js
  169. +13 −2 ...icrosoft.AspNet.SignalR.Client.JS.Tests/Tests/FunctionalTests/Transports/WebSocketsFacts/WebSocketsFacts.js
  170. +315 −0 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/UnitTests/Common/InitHandlerFacts.js
  171. +0 −4 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/UnitTests/Common/ResponseFacts.js
  172. +2 −2 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/UnitTests/Common/UrlFacts.js
  173. +19 −0 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/Tests/UnitTests/Transports/ForeverFrameFacts.js
  174. +3 −0  tests/Microsoft.AspNet.SignalR.Client.JS.Tests/default.html
  175. +4 −2 tests/Microsoft.AspNet.SignalR.Client.JS.Tests/packages.config
  176. +85 −0 tests/Microsoft.AspNet.SignalR.Client.Portable.Tests/Client/Infrastructure/UrlBuilderFacts.cs
  177. +96 −0 tests/Microsoft.AspNet.SignalR.Client.Portable.Tests/Microsoft.AspNet.SignalR.Client.Portable.Tests.csproj
  178. +36 −0 tests/Microsoft.AspNet.SignalR.Client.Portable.Tests/Properties/AssemblyInfo.cs
  179. +8 −0 tests/Microsoft.AspNet.SignalR.Client.Portable.Tests/packages.config
  180. +14 −0 tests/Microsoft.AspNet.SignalR.Client.Store.TestHost/App.config
  181. +88 −0 tests/Microsoft.AspNet.SignalR.Client.Store.TestHost/Microsoft.AspNet.SignalR.Client.Store.TestHost.csproj
  182. +29 −0 tests/Microsoft.AspNet.SignalR.Client.Store.TestHost/Program.cs
  183. +36 −0 tests/Microsoft.AspNet.SignalR.Client.Store.TestHost/Properties/AssemblyInfo.cs
  184. +20 −0 tests/Microsoft.AspNet.SignalR.Client.Store.TestHost/StoreWebSocketTestHub.cs
  185. +7 −0 tests/Microsoft.AspNet.SignalR.Client.Store.TestHost/packages.config
  186. +24 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/ClientResources.cs
  187. +190 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/FakeConnection.cs
  188. +135 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/FakeDataReader.cs
  189. +117 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/FakeInvocationManager.cs
  190. +102 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/FakeOutputStream.cs
  191. +26 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/FakeTransportHelper.cs
  192. +55 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/FakeWebSocket.cs
  193. +33 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/FakeWebSocketResponse.cs
  194. +40 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/FakeWebSocketTransport.cs
  195. +12 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Fakes/IFake.cs
  196. +221 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/FunctionalTests/EndToEndTests.cs
  197. BIN  tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Images/UnitTestLogo.scale-100.png
  198. BIN  tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Images/UnitTestSmallLogo.scale-100.png
  199. BIN  tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Images/UnitTestSplashScreen.scale-100.png
  200. BIN  tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Images/UnitTestStoreLogo.scale-100.png
  201. +223 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Microsoft.AspNet.SignalR.Client.Store.Tests.csproj
  202. BIN  tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Microsoft.AspNet.SignalR.Client.Store.Tests_TemporaryKey.pfx
  203. +56 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Package.appxmanifest
  204. +28 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Properties/AssemblyInfo.cs
  205. +51 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Transports/WebSocketRequestFacts.cs
  206. +453 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Transports/WebSocketTransportFacts.cs
  207. +11 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/app.config
  208. +12 −0 tests/Microsoft.AspNet.SignalR.Client.Store.Tests/packages.config
  209. +43 −13 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/ConnectionFacts.cs
  210. +38 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/HeartbeatMonitorFacts.cs
  211. +43 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/Http/DefaultHttpClientFacts.cs
  212. +89 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/Infrastructure/TaskQueueFacts.cs
  213. +136 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/Infrastructure/TaskQueueMonitorFacts.cs
  214. +229 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/Infrastructure/TransportInitializationHandlerFacts.cs
  215. +489 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/Infrastructure/UrlBuilderFacts.cs
  216. +65 −101 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/TransportFacts.cs
  217. +115 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/Transports/AutoTransportFacts.cs
  218. +229 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/Transports/ClientTransportBaseFacts.cs
  219. +97 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Client/Transports/WebSockets/ClientWebSocketHandlerFacts.cs
  220. +11 −0 tests/Microsoft.AspNet.SignalR.Client.Tests/Microsoft.AspNet.SignalR.Client.Tests.csproj
  221. +34 −4 tests/Microsoft.AspNet.SignalR.FunctionalTests/Client/ConnectionFacts.cs
  222. +2 −1  tests/Microsoft.AspNet.SignalR.FunctionalTests/Client/HubProxyFacts.cs
  223. +1 −2  tests/Microsoft.AspNet.SignalR.FunctionalTests/Client/KeepAliveFacts.cs
  224. +145 −112 tests/Microsoft.AspNet.SignalR.FunctionalTests/Client/LongPollingFacts.cs
  225. +7 −6 tests/Microsoft.AspNet.SignalR.FunctionalTests/Microsoft.AspNet.SignalR.FunctionalTests.csproj
  226. +73 −3 tests/Microsoft.AspNet.SignalR.FunctionalTests/Server/Connections/ConnectionFacts.cs
  227. +0 −151 tests/Microsoft.AspNet.SignalR.FunctionalTests/Server/Connections/DisconnectFacts.cs
  228. +317 −0 tests/Microsoft.AspNet.SignalR.FunctionalTests/Server/Connections/FarmFacts.cs
  229. +7 −6 tests/Microsoft.AspNet.SignalR.FunctionalTests/Server/Connections/PersistentConnectionFacts.cs
  230. +55 −4 tests/Microsoft.AspNet.SignalR.FunctionalTests/Server/Connections/ReconnectFacts.cs
  231. +3 −3 tests/Microsoft.AspNet.SignalR.FunctionalTests/packages.config
  232. +96 −0 tests/Microsoft.AspNet.SignalR.Redis.Tests/Microsoft.AspNet.SignalR.Redis.Tests.csproj
  233. +36 −0 tests/Microsoft.AspNet.SignalR.Redis.Tests/Properties/AssemblyInfo.cs
  234. +133 −0 tests/Microsoft.AspNet.SignalR.Redis.Tests/RedisMessageBusFacts.cs
  235. +8 −0 tests/Microsoft.AspNet.SignalR.Redis.Tests/packages.config
  236. +36 −3 tests/Microsoft.AspNet.SignalR.Tests.Common/App_Start/Initializer.cs
  237. +3 −2 tests/Microsoft.AspNet.SignalR.Tests.Common/Connections/MyGroupConnection.cs
  238. +1 −4 tests/Microsoft.AspNet.SignalR.Tests.Common/Hubs/ChatWithGroups.cs
  239. +2 −2 tests/Microsoft.AspNet.SignalR.Tests.Common/Infrastructure/HostedTest.cs
  240. +2 −2 tests/Microsoft.AspNet.SignalR.Tests.Common/Infrastructure/HostedTestFactory.cs
  241. +34 −2 tests/Microsoft.AspNet.SignalR.Tests.Common/Infrastructure/OwinTestHost.cs
  242. +14 −12 tests/Microsoft.AspNet.SignalR.Tests.Common/Microsoft.AspNet.SignalR.Tests.Common.csproj
  243. +6 −6 tests/Microsoft.AspNet.SignalR.Tests.Common/packages.config
  244. +73 −0 tests/Microsoft.AspNet.SignalR.Tests/DefaultDependencyResolverFacts.cs
  245. +2 −0  tests/Microsoft.AspNet.SignalR.Tests/Microsoft.AspNet.SignalR.Tests.csproj
  246. +6 −43 tests/Microsoft.AspNet.SignalR.Tests/Owin/WebSocketFacts.cs
  247. +46 −0 tests/Microsoft.AspNet.SignalR.Tests/PerformanceCounterManagerFacts.cs
  248. +16 −5 tests/Microsoft.AspNet.SignalR.Tests/PersistentConnectionFacts.cs
  249. +99 −3 tests/Microsoft.AspNet.SignalR.Tests/Server/ConnectionFacts.cs
  250. +67 −0 tests/Microsoft.AspNet.SignalR.Tests/Server/Hubs/HubFacts.cs
  251. +1 −1  tests/Microsoft.AspNet.SignalR.Tests/Server/Hubs/HubProgressFacts.cs
  252. +78 −15 tests/Microsoft.AspNet.SignalR.Tests/Server/Hubs/TypedClientBuilderFacts.cs
  253. +12 −3 tests/Microsoft.AspNet.SignalR.Tests/Server/MessageBusFacts.cs
  254. +3 −3 tests/Microsoft.AspNet.SignalR.Tests/Server/ScaleOutMessageBusFacts.cs
  255. +21 −0 tests/Microsoft.AspNet.SignalR.Tests/Server/ScaleoutStoreFacts.cs
  256. +1 −1  tests/Microsoft.AspNet.SignalR.Tests/Server/Transports/ForeverTransportFacts.cs
  257. +1 −0  tests/Microsoft.AspNet.SignalR.Tests/Server/Transports/LongPollingTransportFacts.cs
  258. +25 −25 tests/Microsoft.AspNet.SignalR.Tests/Server/Transports/WebsocketTransportFacts.cs
  259. +101 −51 tests/Microsoft.AspNet.SignalR.Tests/TaskAsyncHelperFacts.cs
  260. BIN  tools/xunit/xunit.runner.msbuild.dll
  261. BIN  tools/xunit/xunit.runner.utility.dll
  262. +1 −1  xamarin/SignalRPackage/component/component.yaml
View
1  .gitignore
@@ -32,3 +32,4 @@ PublishProfiles/
jquery.signalR.js
jquery.signalR.min.js
xamarin/SignalRPackage/component/lib/mobile/
+tests/Microsoft.AspNet.SignalR.Client.Store.Tests/AppPackages/
View
BIN  .nuget/NuGet.exe
Binary file not shown
View
15 .nuget/packages.config
@@ -1,6 +1,11 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="OpenCover" version="4.5.1403" />
- <package id="ReportGenerator" version="1.7.3.0" />
- <package id="xunit.runners" version="1.9.1" />
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="Microsoft.Bcl" version="1.1.9" />
+ <package id="Microsoft.Bcl.Build" version="1.0.14" />
+ <package id="OpenCover" version="4.5.1403" />
+ <package id="ReportGenerator" version="1.7.3.0" />
+ <package id="xunit.runners" version="1.9.1" />
+ <package id="xunit.runners" version="2.0.0-beta4-build2738" />
+ <!-- don't remove or tests may not run -->
+ <package id="xunit.core" version="2.0.0-beta4-build2738" />
</packages>
View
114 Microsoft.AspNet.SignalR.sln
@@ -1,6 +1,8 @@

Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30321.0
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.SignalR.Core", "src\Microsoft.AspNet.SignalR.Core\Microsoft.AspNet.SignalR.Core.csproj", "{1B9A82C4-BCA1-4834-A33E-226F17BE070B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.SignalR.Client", "src\Microsoft.AspNet.SignalR.Client\Microsoft.AspNet.SignalR.Client.csproj", "{EB46B9C6-EE37-48F9-835E-E49580E40E0A}"
@@ -98,6 +100,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.SignalR.Da
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.AspNet.SignalR.Samples.VB", "samples\Microsoft.AspNet.SignalR.Samples.VB\Microsoft.AspNet.SignalR.Samples.VB.vbproj", "{44FFD296-2FC1-4159-80AC-4F6C8AE9887C}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.SignalR.Client.Store", "src\Microsoft.AspNet.SignalR.Client.Store\Microsoft.AspNet.SignalR.Client.Store.csproj", "{29E437B6-C451-4353-BB29-3B85EF16A3CF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.SignalR.Client.Store.Tests", "tests\Microsoft.AspNet.SignalR.Client.Store.Tests\Microsoft.AspNet.SignalR.Client.Store.Tests.csproj", "{D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.SignalR.Client.Portable.Tests", "tests\Microsoft.AspNet.SignalR.Client.Portable.Tests\Microsoft.AspNet.SignalR.Client.Portable.Tests.csproj", "{27015CCF-9FCA-4490-A8D5-9D2B82B1369E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.SignalR.Client.Store.TestHost", "tests\Microsoft.AspNet.SignalR.Client.Store.TestHost\Microsoft.AspNet.SignalR.Client.Store.TestHost.csproj", "{F0697521-4A41-4A2A-BA64-D9A97CAA62A1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.SignalR.Redis.Tests", "tests\Microsoft.AspNet.SignalR.Redis.Tests\Microsoft.AspNet.SignalR.Redis.Tests.csproj", "{C281927C-2082-4E2A-A1DB-9CD7225F5CED}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -596,20 +608,103 @@ Global
{44FFD296-2FC1-4159-80AC-4F6C8AE9887C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{44FFD296-2FC1-4159-80AC-4F6C8AE9887C}.Release|x64.ActiveCfg = Release|Any CPU
{44FFD296-2FC1-4159-80AC-4F6C8AE9887C}.Release|x86.ActiveCfg = Release|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Release|ARM.ActiveCfg = Release|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Release|x64.ActiveCfg = Release|Any CPU
+ {29E437B6-C451-4353-BB29-3B85EF16A3CF}.Release|x86.ActiveCfg = Release|Any CPU
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|ARM.ActiveCfg = Debug|ARM
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|ARM.Build.0 = Debug|ARM
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|ARM.Deploy.0 = Debug|ARM
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|x64.ActiveCfg = Debug|x64
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|x64.Build.0 = Debug|x64
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|x64.Deploy.0 = Debug|x64
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|x86.ActiveCfg = Debug|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|x86.Build.0 = Debug|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Debug|x86.Deploy.0 = Debug|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|ARM.ActiveCfg = Release|ARM
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|ARM.Build.0 = Release|ARM
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|ARM.Deploy.0 = Release|ARM
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|Mixed Platforms.Build.0 = Release|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|Mixed Platforms.Deploy.0 = Release|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|x64.ActiveCfg = Release|x64
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|x64.Build.0 = Release|x64
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|x64.Deploy.0 = Release|x64
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|x86.ActiveCfg = Release|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|x86.Build.0 = Release|x86
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C}.Release|x86.Deploy.0 = Release|x86
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Release|ARM.ActiveCfg = Release|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Release|x64.ActiveCfg = Release|Any CPU
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E}.Release|x86.ActiveCfg = Release|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Release|ARM.ActiveCfg = Release|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Release|x64.ActiveCfg = Release|Any CPU
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1}.Release|x86.ActiveCfg = Release|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Release|ARM.ActiveCfg = Release|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Release|x64.ActiveCfg = Release|Any CPU
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
{E965290E-278C-4B4D-8AE4-404976433BC3} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
+ {B94E0027-2664-4DAC-BA32-7AA12BFCEE10} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
{819038AC-6770-48DB-B9FA-F1245C87C341} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
{F18A8896-10BD-469E-9AA1-AEBACEF4D7B7} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
{0A4487F1-9374-4E7B-957F-99647319C540} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
- {FBA09237-84CC-4383-BD12-CDF58E4020E8} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
- {8B9D292A-0F2D-444D-9A61-2D96A0E7041E} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
- {08AA65C1-15D1-45E8-BE68-FD02B1C2F7D5} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
- {E0223FDC-0982-4D80-B6C2-BFAA6C6748C5} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
- {B94E0027-2664-4DAC-BA32-7AA12BFCEE10} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
{1EA34A62-E03E-45CF-A9C9-82D2DA0FCD82} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
{5D69B6BE-062B-408D-913E-5CD2F21D5D17} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
{2B6F3C11-DE35-4948-A49F-A6C65A297C86} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
@@ -617,6 +712,13 @@ Global
{27D349B4-FBA2-4830-978A-9B30FFB926F0} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
{C10CAED0-D8FA-4559-B3E7-40F104BC79A2} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
{C53C2CC0-1429-40C8-B79C-EBDDBE292FB6} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
+ {FBA09237-84CC-4383-BD12-CDF58E4020E8} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
+ {8B9D292A-0F2D-444D-9A61-2D96A0E7041E} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
+ {08AA65C1-15D1-45E8-BE68-FD02B1C2F7D5} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
{44FFD296-2FC1-4159-80AC-4F6C8AE9887C} = {7E3D992A-8F37-4C5D-AD42-E052522816C5}
+ {D728E0A1-A7F8-4FA3-9B17-2C3B9031311C} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
+ {27015CCF-9FCA-4490-A8D5-9D2B82B1369E} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
+ {F0697521-4A41-4A2A-BA64-D9A97CAA62A1} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
+ {C281927C-2082-4E2A-A1DB-9CD7225F5CED} = {505538C3-B34D-4B43-BDE6-C6E974AB03A6}
EndGlobalSection
EndGlobal
View
5 build.cmd
@@ -1,4 +1,8 @@
@echo Off
+
+rem Enforce package restore to avoid build issues. See http://go.microsoft.com/fwlink/?LinkID=317568 for more details
+msbuild .nuget\NuGet.targets /t:RestorePackages
+
set target=%1
if "%target%" == "" (
set target=BuildCmd
@@ -7,4 +11,5 @@ set config=%2
if "%config%" == "" (
set config=Debug
)
+
msbuild Build\Build.proj /t:"%target%" /p:Configuration="%config%" /m /fl /flp:LogFile=msbuild.log;Verbosity=Normal /nr:false
View
112 build/Build.proj
@@ -24,7 +24,7 @@
<NuGetToolsPath>$(ProjectRoot)\.nuget</NuGetToolsPath>
<NuGetExePath>$(NuGetToolsPath)\nuget.exe</NuGetExePath>
<ToolsPath>$(ProjectRoot)\tools\</ToolsPath>
- <XunitPath>$(ToolsPath)xunit\</XunitPath>
+ <XunitPath>$(ProjectRoot)\packages\xunit.runners.2.0.0-beta4-build2738\tools\</XunitPath>
<ChutzpahExe>chutzpah.console.exe</ChutzpahExe>
<ChutzpahPath>$(ProjectRoot)\tools\chutzpah</ChutzpahPath>
<ChutzpahExePath>$(ChutzpahPath)\$(ChutzpahExe)</ChutzpahExePath>
@@ -81,9 +81,19 @@
<!-- Only build the following clients if the SDK is installed -->
<Projects Include="$(ProjectRoot)\src\Microsoft.AspNet.SignalR.Client.Portable\Microsoft.AspNet.SignalR.Client.Portable.csproj">
<Build Condition="!$(WP8SDKInstalled)">false</Build>
- <Platform>portable-net45+sl5+netcore45+wp8+wp81+wpa81</Platform>
- <!-- HttpClient causes issues with running FxCop on the SL5 and WP8 clients -->
- <RunFxCop>false</RunFxCop>
+ <Platform>portable-net45+sl5+netcore45+wp8+wp81</Platform>
+ </Projects>
+ <Projects Include="$(ProjectRoot)\src\Microsoft.AspNet.SignalR.Client.Portable\Microsoft.AspNet.SignalR.Client.Portable.csproj">
+ <!--
+ Don't build this project. It is just for copying artifacts to wpa81 folder.
+ Relies on Microsoft.AspNet.SignalR.Client.Portable\Microsoft.AspNet.SignalR.Client.Portable.csproj being
+ built first (or can result in a stale dll or a failure)
+ -->
+ <Build>false</Build>
+ <Platform>portable-win81+wpa81</Platform>
+ </Projects>
+ <Projects Include="$(ProjectRoot)\src\Microsoft.AspNet.SignalR.Client.Store\Microsoft.AspNet.SignalR.Client.Store.csproj">
+ <Platform>portable-win81+wpa81</Platform>
</Projects>
<!-- The SignalR .NET client is the only remaining project that targets .NET 4.0 starting in SignalR 2.0 -->
<Projects Include="$(ProjectRoot)\src\Microsoft.AspNet.SignalR.Client\Microsoft.AspNet.SignalR.Client.csproj">
@@ -151,6 +161,9 @@
<UnitTestProjects Include="$(ProjectRoot)\tests\Microsoft.AspNet.SignalR.Tests\Microsoft.AspNet.SignalR.Tests.csproj"></UnitTestProjects>
<UnitTestProjects Include="$(ProjectRoot)\tests\Microsoft.AspNet.SignalR.Client.Tests\Microsoft.AspNet.SignalR.Client.Tests.csproj"></UnitTestProjects>
<UnitTestProjects Include="$(ProjectRoot)\tests\Microsoft.AspNet.SignalR.SqlServer.Tests\Microsoft.AspNet.SignalR.SqlServer.Tests.csproj"></UnitTestProjects>
+ <UnitTestProjects Include="$(ProjectRoot)\tests\Microsoft.AspNet.SignalR.Client.Store.TestHost\Microsoft.AspNet.SignalR.Client.Store.TestHost.csproj"></UnitTestProjects>
+ <UnitTestProjects Include="$(ProjectRoot)\tests\Microsoft.AspNet.SignalR.Client.Store.Tests\Microsoft.AspNet.SignalR.Client.Store.Tests.csproj"></UnitTestProjects>
+ <UnitTestProjects Include="$(ProjectRoot)\tests\Microsoft.AspNet.SignalR.Client.Portable.Tests\Microsoft.AspNet.SignalR.Client.Portable.Tests.csproj"></UnitTestProjects>
</ItemGroup>
<ItemGroup>
@@ -222,19 +235,38 @@
Properties="Configuration=$(Configuration);ArtifactsDir=$(ProjectArtifactsDir);SolutionDir=$(ProjectRoot)\;$(ExtraProperties);"
Condition=" '$(OS)' == 'Windows_NT'"/>
</Target>
+
+ <Target Name="RunNetUnitTests" DependsOnTargets="BuildNetUnitTests">
+
+ <xunit Assemblies="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.Tests\Microsoft.AspNet.SignalR.Tests.dll"
+ Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.Tests.XunitResults.xml"
+ Verbose="true" />
- <Target Name="BuildNetFunctionalTests" DependsOnTargets="CreateOutputDirs">
- <MSBuild Projects="%(FunctionalTestProjects.Identity)"
- Targets="Build"
- Properties="Configuration=$(Configuration);ArtifactsDir=$(ProjectArtifactsDir);SolutionDir=$(ProjectRoot)\;$(ExtraProperties)"
- Condition=" '$(OS)' == 'Windows_NT'"/>
- </Target>
+ <xunit Assemblies="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.Client.Tests\Microsoft.AspNet.SignalR.Client.Tests.dll"
+ Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.Client.Tests.XunitResults.xml"
+ Verbose="true" />
- <Target Name="AnalyzeLogs">
- <Exec Command='powershell -NoProfile -ExecutionPolicy Bypass $(ProjectRoot)\build\AnalyzeLogs.ps1 "$(ProjectArtifactsDir)"' ContinueOnError="true" />
+ <xunit Assemblies="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.SqlServer.Tests\Microsoft.AspNet.SignalR.SqlServer.Tests.dll"
+ Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.SqlServer.Tests.XunitResults.xml"
+ Verbose="true" />
+
+ <!-- Microsoft.AspNet.SignalR.Client.Store.TestHost.exe is a host required to run some functional Store tests -->
+ <ExecAsync Executable="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.Client.Store.TestHost\Microsoft.AspNet.SignalR.Client.Store.TestHost.exe" Arguments="600000" />
+
+ <xunit Assemblies="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.Client.Store.Tests\Microsoft.AspNet.SignalR.Client.Store.Tests.dll"
+ Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.Client.Store.Tests.XunitResults.xml"
+ Verbose="true" />
+
+ <Exec Command="taskkill /IM Microsoft.AspNet.SignalR.Client.Store.TestHost.exe /F" ContinueOnError="true" />
+
+ <xunit Assemblies="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.Client.Portable.Tests\Microsoft.AspNet.SignalR.Client.Portable.Tests.dll"
+ Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.Client.Portable.Tests.XunitResults.xml"
+ Verbose="true" />
+
</Target>
- <Target Name="RunUnitTests" DependsOnTargets="BuildNetUnitTests">
+ <Target Name="RunJSUnitTests" DependsOnTargets="BuildNetUnitTests">
+
<MSBuild Projects="%(JsTestProjects.Identity)"
Targets="pipelinePreDeployCopyAllFilesToOneFolder"
Properties="Configuration=$(Configuration);ArtifactsDir=$(ProjectArtifactsDir);SolutionDir=$(ProjectRoot)\;$(ExtraProperties);_PackageTempDir=$(JSTestsPath);AutoParameterizationWebConfigConnectionStrings=false;MSBuildCommunityTasksPath=$(MSBuildCommunityTasksPath)"
@@ -254,24 +286,22 @@
<Exec Command="&quot;$(ChutzpahExePath)&quot; &quot;$(JSTester)&quot; /showFailureReport /silent /timeoutMilliseconds 30000" Condition=" '$(OS)' == 'Windows_NT'" />
- <xunit Assembly="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.Tests\Microsoft.AspNet.SignalR.Tests.dll"
- Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.Tests.XunitResults.xml"
- Verbose="true" />
-
- <xunit Assembly="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.Client.Tests\Microsoft.AspNet.SignalR.Client.Tests.dll"
- Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.Client.Tests.XunitResults.xml"
- Verbose="true" />
-
- <xunit Assembly="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.SqlServer.Tests\Microsoft.AspNet.SignalR.SqlServer.Tests.dll"
- Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.SqlServer.Tests.XunitResults.xml"
- Verbose="true" />
-
<CallTarget Targets="KillIISExpress" Condition=" '$(OS)' == 'Windows_NT'" />
<OnError ExecuteTargets="KillIISExpress" Condition=" '$(OS)' == 'Windows_NT'" />
+
+ </Target>
+
+ <Target Name="RunUnitTests" DependsOnTargets="RunJSUnitTests; RunNetUnitTests" />
+
+ <Target Name="BuildNetFunctionalTests" DependsOnTargets="CreateOutputDirs">
+ <MSBuild Projects="%(FunctionalTestProjects.Identity)"
+ Targets="Build"
+ Properties="Configuration=$(Configuration);ArtifactsDir=$(ProjectArtifactsDir);SolutionDir=$(ProjectRoot)\;$(ExtraProperties)"
+ Condition=" '$(OS)' == 'Windows_NT'"/>
</Target>
<Target Name="RunFunctionalTests" DependsOnTargets="BuildNetFunctionalTests">
- <xunit Assembly="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.FunctionalTests\bin\Microsoft.AspNet.SignalR.FunctionalTests.dll"
+ <xunit Assemblies="$(ProjectArtifactsDir)\Microsoft.AspNet.SignalR.FunctionalTests\bin\Microsoft.AspNet.SignalR.FunctionalTests.dll"
Xml="$(TestResultsPath)\Microsoft.AspNet.SignalR.FunctionalTests.XunitResults.xml"
Verbose="true" />
@@ -279,6 +309,10 @@
<OnError ExecuteTargets="KillIISExpress; AnalyzeLogs" />
</Target>
+ <Target Name="AnalyzeLogs">
+ <Exec Command='powershell -NoProfile -ExecutionPolicy Bypass $(ProjectRoot)\build\AnalyzeLogs.ps1 "$(ProjectArtifactsDir)"' ContinueOnError="true" />
+ </Target>
+
<Target Name="TestSwarm" Condition="$(TestSwarmPostData) != ''">
<HttpPostRequest Url="http://testswarm.cloudapp.net/api.php?action=addjob"
Data="$(TestSwarmPostData)" />
@@ -288,7 +322,7 @@
<Exec Command="taskkill /IM iisexpress.exe /F" ContinueOnError="true" />
<CallTarget Targets="ClearAspNetTempFolder" />
</Target>
-
+
<Target Name="ClearAspNetTempFolder">
<RemoveDir Directories="C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root" ContinueOnError="true" />
<RemoveDir Directories="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root" ContinueOnError="true" />
@@ -456,7 +490,7 @@
<ItemGroup>
<XamarinArtifacts Include ="$(ProjectRoot)\packages\Newtonsoft.Json.5.0.6\lib\portable-net40+sl4+wp7+win8\Newtonsoft.Json.dll;
- $(ProjectRoot)\packages\Microsoft.Net.Http.2.1.10\lib\portable-net40+sl4+win8+wp71\System.Net.Http.Extensions.dll">
+ $(ProjectRoot)\packages\Microsoft.Net.Http.2.2.28\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll">
</XamarinArtifacts>
</ItemGroup>
@@ -464,4 +498,26 @@
<Exec Command='mono $(XamarinDir)\xamarin-component\xamarin-component.exe package "$(XamarinDir)\SignalRPackage\component"' ContinueOnError="true" />
</Target>
+
+ <UsingTask TaskName="ExecAsync" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
+ <ParameterGroup>
+ <Executable ParameterType="System.String" Required="true" />
+ <Arguments ParameterType="System.String" Required="false" />
+ </ParameterGroup>
+ <Task>
+ <Using Namespace="System.IO" />
+ <Using Namespace="System.Diagnostics" />
+ <Code Type="Fragment" Language="cs">
+ <![CDATA[
+ Log.LogMessage("Executable {0}...", Executable);
+ var name = System.IO.Path.GetFileNameWithoutExtension(Executable);
+ Log.LogMessage("Starting {0}...", name);
+ var processStartInfo = new ProcessStartInfo(Executable, Arguments) { UseShellExecute = true };
+ Process.Start(processStartInfo);
+ Log.LogMessage("Finished starting process {0}.", name);
+ ]]>
+ </Code>
+ </Task>
+ </UsingTask>
+
</Project>
View
6 build/Microsoft.AspNet.SignalR.versions.targets
@@ -2,8 +2,8 @@
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MajorVersion>2</MajorVersion>
- <MinorVersion>1</MinorVersion>
- <PatchVersion>2</PatchVersion>
+ <MinorVersion>2</MinorVersion>
+ <PatchVersion>0</PatchVersion>
<!-- Change this to set the build quality of the project. Use values like "alpha", "beta", "rc1", "rtm", etc. -->
<!-- These values are used in SemVer, so make sure to always increase these alphabetically. -->
@@ -13,7 +13,7 @@
<KatanaBuildQuality Condition="'$(Nightly)' == 'true'">rtw</KatanaBuildQuality>
<!-- Katana version -->
- <KatanaVersion>2.0.1</KatanaVersion>
+ <KatanaVersion>2.1.0</KatanaVersion>
<!-- Ensure that we come up with a new version every 65535 years -->
<VersionStartYear>2012</VersionStartYear>
View
227 build/Microsoft.Bcl.Build.targets
@@ -1,227 +0,0 @@
-<!--
-***********************************************************************************************
-Microsoft.Bcl.targets
-
-WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
- created a backup copy. Incorrect changes to this file will make it
- impossible to load or build your projects from the command-line or the IDE.
-
-Copyright (C) Microsoft Corporation. All rights reserved.
-***********************************************************************************************
--->
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-
- <PropertyGroup Condition="'$(TargetFrameworkIdentifier)' != 'Silverlight'">
- <!--
- Workaround MSBuild issue that prevents System.Runtime 2.5 and System.Threading.Tasks 2.5 from
- satisfying indirect dependencies on System.Runtime 1.5 and System.Threading.Tasks 1.5 respectively.
- -->
- <AutoUnifyAssemblyReferences>false</AutoUnifyAssemblyReferences>
-
- <!-- MSBuild by default doesn't pass the Web.Config ResolveAssemblyReference, in which case, set it so that it sees binding redirects -->
- <AppConfig Condition="'$(AppConfig)' == '' And '$(WebProjectOutputDir)' != '' And Exists('$(ProjectConfigFileName)')">$(ProjectConfigFileName)</AppConfig>
- </PropertyGroup>
-
- <!-- Workaround issue that incorrectly unifies references not in the current profile to the version in the superset of all profiles. -->
- <Target Name="_BclBuildSetFullFrameworkFolderToProfile" AfterTargets="GetReferenceAssemblyPaths" Condition="'$(TargetFrameworkIdentifier)' == '.NETPortable'">
- <PropertyGroup>
- <_FullFrameworkReferenceAssemblyPaths>$(TargetFrameworkDirectory)</_FullFrameworkReferenceAssemblyPaths>
- </PropertyGroup>
- </Target>
-
- <!--
- *******************************************************************************************************************
- *******************************************************************************************************************
- EnsureBindingRedirects Section
- *******************************************************************************************************************
- *******************************************************************************************************************
- -->
- <PropertyGroup>
- <__IntermediateAppConfig>$(IntermediateOutputPath)$(MSBuildProjectFile).App.config</__IntermediateAppConfig>
- </PropertyGroup>
-
- <UsingTask TaskName="EnsureBindingRedirects" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Bcl.Build.Tasks.dll" />
-
- <!--
- ===================================================================================================================
- BclBuildDetermineReferencesToRedirect
-
- Determine which references are opted in for binding redirects
- ===================================================================================================================
- -->
- <Target Name="BclBuildDetermineReferencesToRedirect" BeforeTargets="BclBuildEnsureBindingRedirects">
- <!-- Convention is a file next to the reference with name "ensureRedirect.xml" -->
- <ItemGroup>
- <_EnsureBindingRedirectReference Include="@(Reference)"
- Condition="'%(Reference.HintPath)' != '' and Exists('$([System.IO.Path]::GetDirectoryName(&quot;%(Reference.HintPath)&quot;))\\ensureRedirect.xml')" />
- </ItemGroup>
- </Target>
-
- <!--
- ===================================================================================================================
- BclBuildEnsureBindingRedirects
-
- Generate a new app.config with merged binding redirects if we have binding redirects to ensure and it's out of date
- ===================================================================================================================
- -->
- <Target Name="BclBuildEnsureBindingRedirects"
- DependsOnTargets="BclBuildDetermineReferencesToRedirect"
- BeforeTargets="ResolveAssemblyReferences"
- Condition="'@(_EnsureBindingRedirectReference)' != ''"
- Inputs="$(MSBuildAllProjects);$(AppConfig);@(_EnsureBindingRedirectReference->'%(HintPath)')"
- Outputs="$(__IntermediateAppConfig)">
-
- <EnsureBindingRedirects References="@(_EnsureBindingRedirectReference->'%(HintPath)')"
- SourceAppConfigPath="$(AppConfig)"
- DestinationAppConfigPath="$(__IntermediateAppConfig)">
- <Output TaskParameter="DestinationAppConfigPath" ItemName="FileWrites"/>
- </EnsureBindingRedirects>
- </Target>
-
- <!--
- ===================================================================================================================
- BclBuildUpdateAppConfigWithTargetPath
-
- Update project properties to point to the generated app.config
- ===================================================================================================================
- -->
- <Target Name="BclBuildUpdateAppConfigWithTargetPath"
- DependsOnTargets="BclBuildDetermineReferencesToRedirect;BclBuildEnsureBindingRedirects"
- BeforeTargets="ResolveAssemblyReferences"
- Condition="'@(_EnsureBindingRedirectReference)' != ''">
- <PropertyGroup>
- <AppConfig>$(__IntermediateAppConfig)</AppConfig>
- </PropertyGroup>
- <ItemGroup>
- <AppConfigWithTargetPath Remove="@(AppConfigWithTargetPath)" />
- <AppConfigWithTargetPath Include="$(AppConfig)">
- <TargetPath>$(TargetFileName).config</TargetPath>
- </AppConfigWithTargetPath>
- </ItemGroup>
- </Target>
-
-
- <!--
- *******************************************************************************************************************
- *******************************************************************************************************************
- ValidatePackageReferences Section
-
- This group of targets enables validation of nuget package references when building inside VisualStudio.
- *******************************************************************************************************************
- *******************************************************************************************************************
- -->
-
- <!--
- ===================================================================================================================
- BclBuildAddProjectReferenceProperties
-
- Adds properties to be set when resolving project references. The properties ensure that the references get built
- in the context of the referencer (by changing the set of properties used to build the project) and pass down the
- context needed to validate the referencing project.
- ===================================================================================================================
- -->
- <Target Name="BclBuildAddProjectReferenceProperties"
- BeforeTargets="AssignProjectConfiguration"
- Condition="'$(BuildingInsideVisualStudio)' == 'true'">
- <PropertyGroup>
- <_BclBuildProjectReferenceProperties>BclBuildReferencingProject=$(MSBuildProjectFullPath);BclBuildReferencingProjectConfig=$(MSBuildProjectDirectory)\packages.config</_BclBuildProjectReferenceProperties>
- <_BclBuildProjectReferenceProperties Condition="'$(SkipValidatePackageReferences)' != ''">$(_BclBuildProjectReferenceProperties);SkipValidatePackageReferences=$(SkipValidatePackageReferences)</_BclBuildProjectReferenceProperties>
- </PropertyGroup>
-
- <ItemGroup>
- <ProjectReference>
- <Properties>%(ProjectReference.Properties);$(_BclBuildProjectReferenceProperties)</Properties>
- </ProjectReference>
- </ItemGroup>
- </Target>
-
- <!--
- ===================================================================================================================
- BclBuildSetRunningFullBuild
-
- Determines when a full build is running as opposed to a single target.
- ===================================================================================================================
- -->
- <Target Name="BclBuildSetRunningFullBuild"
- BeforeTargets="BuildOnlySettings">
- <PropertyGroup>
- <BclBuildRunningFullBuild>true</BclBuildRunningFullBuild>
- </PropertyGroup>
- </Target>
-
- <!--
- ===================================================================================================================
- GetTargetPath/BclBuildGetTargetPath
-
- MSBuild will only build a target once for a given set of properties.
-
- We need that single build of GetTargetPath to run during project reference resolution, so that we can detect a
- referencing project that doesn't have Bcl.Build.
-
- To accomplish this we replace GetTargetPath with BclBuildGetTargetPath when running a full build.
- ===================================================================================================================
- -->
- <Target
- Name="GetTargetPath"
- Condition="'$(BclBuildRunningFullBuild)' != 'true'"
- DependsOnTargets="$(GetTargetPathDependsOn)"
- Returns="$(TargetPath)"/>
-
- <Target
- Name="BclBuildGetTargetPath"
- Condition="'$(BclBuildRunningFullBuild)' == 'true'"
- AfterTargets="GetTargetPath"
- Returns="$(TargetPath)">
- <PropertyGroup>
- <!-- Reset BclBuildRunningFullBuild, it will be set again when doing a full build. -->
- <BclBuildRunningFullBuild>false</BclBuildRunningFullBuild>
- </PropertyGroup>
- </Target>
-
- <!--
- ===================================================================================================================
- BclBuildValidateNugetPackageReferences
-
- This target validates that any Nuget packages installed in the current project are also installed in projects
- referencing the current project.
-
- This is necessary because Nuget packages contain more than just simple references. Installing the package ensures
- 1. The right set of references for the target framework are added
- 2. Config file transforms are applied
- 3. Project installation scripts are run
-
- For all packages listed as installed for the current project in packages config, if the package ID matches one
- specified in @(ValidatePackages), ensure that the same package is installed in the referencing project.
-
- This target can be disabled for a project reference by setting SkipValidatePackageReferences=true for the reference:
- <ProjectReference Include="..\pcl\pcl.csproj">
- <Project>{664a9e98-fac7-4567-a046-0dde95fddb48}</Project>
- <Name>pcl</Name>
- <Properties>SkipValidatePackageReferences=true</Properties>
- </ProjectReference>
-
- This target can be disabled for all references to a project by adding the following:
- <PropertyGroup>
- <SkipValidatePackageReferences>true</SkipValidatePackageReferences>
- </PropertyGroup>
- ===================================================================================================================
- -->
- <UsingTask TaskName="ValidatePackageReferences" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Bcl.Build.Tasks.dll" />
- <Target Name="BclBuildValidateNugetPackageReferences"
- Condition="'$(BclBuildRunningFullBuild)' != 'true' AND '$(SkipValidatePackageReferences)' != 'true' AND '$(BuildingInsideVisualStudio)' == 'true'"
- BeforeTargets="GetTargetPath">
- <ItemGroup>
- <ValidatePackages Include="Microsoft.Bcl"/>
- <ValidatePackages Include="Microsoft.Bcl.Async"/>
- <ValidatePackages Include="Microsoft.Bcl.Compression"/>
- <ValidatePackages Include="Microsoft.Net.Http"/>
- </ItemGroup>
-
- <ValidatePackageReferences Packages="@(ValidatePackages)"
- ReferencingProject="$(BclBuildReferencingProject)"
- ReferencingProjectPackagesConfig="$(BclBuildReferencingProjectConfig)"
- ReferencedProject="$(MSBuildProjectFullPath)"
- ReferencedProjectPackagesConfig="$(MSBuildProjectDirectory)\packages.config"
- TreatWarningsAsErrors="$(TreatWarningsAsErrors)" />
- </Target>
-</Project>
View
16 nuspecs/Microsoft.AspNet.SignalR.Client.nuspec
@@ -21,13 +21,13 @@
<group targetFramework="net45">
<dependency id="Newtonsoft.Json" version="6.0.4" />
</group>
- <group targetFramework="portable-net45+sl5+netcore45+wp8">
+ <group targetFramework="portable-net45+sl5+netcore45+wp8+wp81">
<dependency id="Newtonsoft.Json" version="6.0.4" />
- <dependency id="Microsoft.Net.Http" version="2.1.10" />
+ <dependency id="Microsoft.Net.Http" version="2.2.28" />
</group>
- <group targetFramework="portable-wp81+wpa81">
+ <group targetFramework="wpa81">
<dependency id="Newtonsoft.Json" version="6.0.4" />
- <dependency id="Microsoft.Net.Http" version="2.2.19" />
+ <dependency id="Microsoft.Net.Http" version="2.2.28" />
</group>
</dependencies>
</metadata>
@@ -36,7 +36,11 @@
<file src="Net40\Microsoft.AspNet.SignalR.Client.xml" target="lib\net40" />
<file src="Net45\Microsoft.AspNet.SignalR.Client.dll" target="lib\net45" />
<file src="Net45\Microsoft.AspNet.SignalR.Client.xml" target="lib\net45" />
- <file src="portable-net45+sl5+netcore45+wp8+wp81+wpa81\Microsoft.AspNet.SignalR.Client.dll" target="lib\portable-net45+sl5+netcore45+wp8+wp81+wpa81" />
- <file src="portable-net45+sl5+netcore45+wp8+wp81+wpa81\Microsoft.AspNet.SignalR.Client.xml" target="lib\portable-net45+sl5+netcore45+wp8+wp81+wpa81" />
+ <file src="portable-net45+sl5+netcore45+wp8+wp81\Microsoft.AspNet.SignalR.Client.dll" target="lib\portable-net45+sl5+netcore45+wp8+wp81" />
+ <file src="portable-net45+sl5+netcore45+wp8+wp81\Microsoft.AspNet.SignalR.Client.xml" target="lib\portable-net45+sl5+netcore45+wp8+wp81" />
+ <file src="portable-win81+wpa81\Microsoft.AspNet.SignalR.Client.dll" target="lib\portable-win81+wpa81" />
+ <file src="portable-win81+wpa81\Microsoft.AspNet.SignalR.Client.xml" target="lib\portable-win81+wpa81" />
+ <file src="portable-win81+wpa81\Microsoft.AspNet.SignalR.Client.Store.dll" target="lib\portable-win81+wpa81" />
+ <file src="portable-win81+wpa81\Microsoft.AspNet.SignalR.Client.Store.Xml" target="lib\portable-win81+wpa81" />
</files>
</package>
View
2  nuspecs/Microsoft.AspNet.SignalR.Redis.nuspec
@@ -16,7 +16,7 @@
<releaseNotes>https://github.com/SignalR/SignalR/releases</releaseNotes>
<dependencies>
<dependency id="Microsoft.AspNet.SignalR.Core" version="__SIGNALR_PACKAGE_VERSION__" />
- <dependency id="BookSleeve" version="1.3.31" />
+ <dependency id="StackExchange.Redis.StrongName" version="1.0.322" />
</dependencies>
</metadata>
<files>
View
20 samples/Microsoft.AspNet.SelfHost.Samples/Microsoft.AspNet.SelfHost.Samples.csproj
@@ -38,25 +38,25 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
- <Reference Include="Microsoft.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.2.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.2.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Cors, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin.Cors, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.Cors.2.0.1\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.Cors.2.1.0\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Diagnostics, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin.Diagnostics, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.Diagnostics.2.0.1\lib\net40\Microsoft.Owin.Diagnostics.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.Diagnostics.2.1.0\lib\net40\Microsoft.Owin.Diagnostics.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Host.HttpListener, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin.Host.HttpListener, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.Host.HttpListener.2.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.Host.HttpListener.2.1.0\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Hosting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin.Hosting, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.Hosting.2.0.1\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.Hosting.2.1.0\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
View
12 samples/Microsoft.AspNet.SelfHost.Samples/packages.config
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.Cors" version="5.0.0" targetFramework="net45" />
- <package id="Microsoft.Owin" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Cors" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Diagnostics" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Host.HttpListener" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Hosting" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.SelfHost" version="2.0.1" targetFramework="net45" />
+ <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Cors" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Diagnostics" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Host.HttpListener" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Hosting" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.SelfHost" version="2.1.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />
</packages>
View
19 ...alR.Client.Silverlight.Samples/Microsoft.AspNet.SignalR.Client.Silverlight.Samples.csproj
@@ -80,23 +80,23 @@
</Reference>
<Reference Include="System.Net.Http">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Net.Http.2.1.10\lib\portable-net40+sl4+win8+wp71\System.Net.Http.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Net.Http.2.2.28\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http.Extensions">
- <HintPath>..\..\packages\Microsoft.Net.Http.2.1.10\lib\portable-net40+sl4+win8+wp71\System.Net.Http.Extensions.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Net.Http.2.2.28\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http.Primitives">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Net.Http.2.1.10\lib\portable-net40+sl4+win8+wp71\System.Net.Http.Primitives.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Net.Http.2.2.28\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Runtime">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Bcl.1.0.19\lib\sl5\System.Runtime.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Bcl.1.1.9\lib\sl5\System.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Bcl.1.0.19\lib\sl5\System.Threading.Tasks.dll</HintPath>
- </Reference>
+ <HintPath>..\..\packages\Microsoft.Bcl.1.1.9\lib\sl5\System.Threading.Tasks.dll</HintPath>
+ </Reference>
<Reference Include="System.Windows" />
<Reference Include="system" />
<Reference Include="System.Core">
@@ -130,6 +130,7 @@
</Page>
</ItemGroup>
<ItemGroup>
+ <None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\AppManifest.xml" />
</ItemGroup>
@@ -155,5 +156,9 @@
</VisualStudio>
</ProjectExtensions>
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
- <Import Project="$(SolutionDir)\build\Microsoft.Bcl.Build.targets" />
+ <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
+ <Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
+ <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
+ <Error Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
+ </Target>
</Project>
View
15 samples/Microsoft.AspNet.SignalR.Client.Silverlight.Samples/app.config
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
View
14 samples/Microsoft.AspNet.SignalR.Client.Silverlight.Samples/packages.config
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="Microsoft.Bcl" version="1.0.19" targetFramework="sl50" />
- <package id="Microsoft.Bcl.Async" version="1.0.16" targetFramework="sl50" />
- <package id="Microsoft.Bcl.Build" version="1.0.5" targetFramework="sl50" />
- <package id="Microsoft.Net.Http" version="2.1.10" targetFramework="sl50" />
- <package id="Newtonsoft.Json" version="6.0.4" targetFramework="sl50" />
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="Microsoft.Bcl" version="1.1.9" targetFramework="sl50" />
+ <package id="Microsoft.Bcl.Async" version="1.0.16" targetFramework="sl50" />
+ <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="sl50" />
+ <package id="Microsoft.Net.Http" version="2.2.28" targetFramework="sl50" />
+ <package id="Newtonsoft.Json" version="6.0.4" targetFramework="sl50" />
</packages>
View
21 ...soft.AspNet.SignalR.Client.WP8.Samples/Microsoft.AspNet.SignalR.Client.WP8.Samples.csproj
@@ -165,14 +165,17 @@
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\packages\Newtonsoft.Json.6.0.4\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll</HintPath>
</Reference>
- <Reference Include="System.Net.Http">
- <HintPath>..\..\packages\Microsoft.Net.Http.2.1.10\lib\sl4-windowsphone71\System.Net.Http.dll</HintPath>
+ <Reference Include="System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\packages\Microsoft.Net.Http.2.2.28\lib\sl4-windowsphone71\System.Net.Http.dll</HintPath>
</Reference>
- <Reference Include="System.Net.Http.Extensions">
- <HintPath>..\..\packages\Microsoft.Net.Http.2.1.10\lib\sl4-windowsphone71\System.Net.Http.Extensions.dll</HintPath>
+ <Reference Include="System.Net.Http.Extensions, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\packages\Microsoft.Net.Http.2.2.28\lib\sl4-windowsphone71\System.Net.Http.Extensions.dll</HintPath>
</Reference>
- <Reference Include="System.Net.Http.Primitives">
- <HintPath>..\..\packages\Microsoft.Net.Http.2.1.10\lib\sl4-windowsphone71\System.Net.Http.Primitives.dll</HintPath>
+ <Reference Include="System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\packages\Microsoft.Net.Http.2.2.28\lib\sl4-windowsphone71\System.Net.Http.Primitives.dll</HintPath>
</Reference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).$(TargetFrameworkVersion).Overrides.targets" />
@@ -186,5 +189,9 @@
-->
<ProjectExtensions />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
- <Import Project="$(SolutionDir)\build\Microsoft.Bcl.Build.targets" />
+ <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
+ <Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
+ <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
+ <Error Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
+ </Target>
</Project>
View
28 samples/Microsoft.AspNet.SignalR.Client.WP8.Samples/app.config
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
</configuration>
View
12 samples/Microsoft.AspNet.SignalR.Client.WP8.Samples/packages.config
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="Microsoft.Bcl" version="1.0.19" targetFramework="wp80" />
- <package id="Microsoft.Bcl.Build" version="1.0.5" targetFramework="wp80" />
- <package id="Microsoft.Net.Http" version="2.1.10" targetFramework="wp80" />
- <package id="Newtonsoft.Json" version="6.0.4" targetFramework="wp80" />
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="Microsoft.Bcl" version="1.1.9" targetFramework="wp80" />
+ <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="wp80" />
+ <package id="Microsoft.Net.Http" version="2.2.28" targetFramework="wp80" />
+ <package id="Newtonsoft.Json" version="6.0.4" targetFramework="wp80" />
</packages>
View
10 ...dowsStoreCSharp.Samples/Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples.csproj
@@ -155,10 +155,10 @@
<HintPath>..\..\packages\Newtonsoft.Json.6.0.4\lib\netcore45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http.Extensions">
- <HintPath>..\..\packages\Microsoft.Net.Http.2.1.10\lib\win8\System.Net.Http.Extensions.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Net.Http.2.2.28\lib\win8\System.Net.Http.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http.Primitives">
- <HintPath>..\..\packages\Microsoft.Net.Http.2.1.10\lib\win8\System.Net.Http.Primitives.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Net.Http.2.2.28\lib\win8\System.Net.Http.Primitives.dll</HintPath>
</Reference>
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '11.0' ">
@@ -166,7 +166,11 @@
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
- <Import Project="$(SolutionDir)\build\Microsoft.Bcl.Build.targets" />
+ <Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
+ <Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
+ <Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
+ <Error Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
+ </Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
View
2  samples/Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples/app.config
@@ -4,7 +4,7 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
- <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0"/>
+ <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
View
12 samples/Microsoft.AspNet.SignalR.Client.WindowsStoreCSharp.Samples/packages.config
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="Microsoft.Bcl" version="1.0.19" targetFramework="win" />
- <package id="Microsoft.Bcl.Build" version="1.0.5" targetFramework="win" />
- <package id="Microsoft.Net.Http" version="2.1.10" targetFramework="win" />
- <package id="Newtonsoft.Json" version="6.0.4" targetFramework="win" />
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="Microsoft.Bcl" version="1.1.9" targetFramework="win" />
+ <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="win" />
+ <package id="Microsoft.Net.Http" version="2.2.28" targetFramework="win" />
+ <package id="Newtonsoft.Json" version="6.0.4" targetFramework="win" />
</packages>
View
12 .../Microsoft.AspNet.SignalR.LoadTestHarness/Microsoft.AspNet.SignalR.LoadTestHarness.csproj
@@ -33,7 +33,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DefineConstants>TRACE;DEBUG;SERVER</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
@@ -43,7 +43,7 @@
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
+ <DefineConstants>TRACE;SERVER</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
@@ -51,13 +51,13 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
- <Reference Include="Microsoft.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.2.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.2.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Host.SystemWeb, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin.Host.SystemWeb, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.Host.SystemWeb.2.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.Host.SystemWeb.2.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
View
4 samples/Microsoft.AspNet.SignalR.LoadTestHarness/packages.config
@@ -4,8 +4,8 @@
<package id="jQuery.Color" version="2.1.0" targetFramework="net40" />
<package id="jQuery.UI.Combined" version="1.9.0" targetFramework="net40" />
<package id="knockoutjs" version="2.1.0" targetFramework="net40" />
- <package id="Microsoft.Owin" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Host.SystemWeb" version="2.0.1" targetFramework="net45" />
+ <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />
</packages>
View
14 samples/Microsoft.AspNet.SignalR.Samples/App_Start/Startup.cs
@@ -27,13 +27,6 @@ public void Configuration(IAppBuilder app)
ConfigureSignalR(GlobalHost.DependencyResolver, GlobalHost.HubPipeline);
- var config = new HubConfiguration()
- {
- EnableDetailedErrors = true
- };
-
- app.MapSignalR(config);
-
app.Map("/cors", map =>
{
map.UseCors(CorsOptions.AllowAll);
@@ -77,6 +70,13 @@ public void Configuration(IAppBuilder app)
map.MapSignalR();
});
+ var config = new HubConfiguration()
+ {
+ EnableDetailedErrors = true
+ };
+
+ app.MapSignalR(config);
+
BackgroundThread.Start();
}
View
15 samples/Microsoft.AspNet.SignalR.Samples/Hubs/MessageLoops/MessageLoops.js
@@ -33,7 +33,7 @@ $(function () {
if (firstReceive === true) {
// if client receives message first time from the connectionId, then don't check missing /dup message
- previousValues.push({ "connectionId": connectionId, "previousValue": value });
+ previousValues.push({ "connectionId": connectionId, "previousValue": value, "isDup": false });
$("#messageLoops").append("<label id=" + connectionId + ">" + " </label>");
} else {
// check missing /dup message, and display if happens
@@ -41,12 +41,13 @@ $(function () {
if (value === previousValueItem.previousValue) {
$("<li/>").css("background-color", "yellow")
.css("color", "black")
- .html("Duplicated message in message loops: pre value: " + previousValueItem.previousValue + " current value: " + value + " from connectionId: " + connectionId)
+ .html("[" + new Date().toTimeString() + "]: Duplicated message in message loops: pre value: " + previousValueItem.previousValue + " current value: " + value + " from connectionId: " + connectionId)
.appendTo(messages);
dupMessageCount++;
- }
- else {
+
+ previousValueItem.isDup = true;
+ } else {
$("<li/>").css("background-color", "red")
.css("color", "white")
.html("Missing message in message loops: pre value: " + previousValueItem.previousValue + " current value: " + value + " from connectionId: " + connectionId)
@@ -55,6 +56,9 @@ $(function () {
missingMessageCount += value - (previousValueItem.previousValue + 1);
}
$("#missingMessagesCount").text("Duplicated messages count: " + dupMessageCount + ", missing messages count: " + missingMessageCount);
+ } else if (previousValueItem.isDup === true) {
+ // Detected all duplicate message(s), now stop connection when new message is not duplicate, so we can easily invetigate it
+ $.connection.hub.stop();
}
previousValueItem.previousValue = value;
@@ -69,18 +73,21 @@ $(function () {
sendMessageCountHandler(value);
}).fail(function (e) {
$("<li/>").html("Failed at sendMessageCountToAll: " + e).appendTo(messages);
+ sendMessageCountHandler(value + 1);
});
} else if (sendMessgeTo === "group") {
messageLoopsHub.server.sendMessageCountToGroup(value, groupName, parseInt(sleepInput.val())).done(function (value) {
sendMessageCountHandler(value);
}).fail(function (e) {
$("<li/>").html("Failed at sendMessageCountToGroup: " + e).appendTo(messages);
+ sendMessageCountHandler(value + 1);
});
} else if (sendMessgeTo === "caller") {
messageLoopsHub.server.sendMessageCountToCaller(value, parseInt(sleepInput.val())).done(function (value) {
sendMessageCountHandler(value);
}).fail(function (e) {
$("<li/>").html("Failed at sendMessageCountToCaller: " + e).appendTo(messages);
+ sendMessageCountHandler(value + 1);
});
}
};
View
25 samples/Microsoft.AspNet.SignalR.Samples/Microsoft.AspNet.SignalR.Samples.csproj
@@ -49,24 +49,25 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
- <Reference Include="Microsoft.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.2.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.3.0.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Cors, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin.Cors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.Cors.2.0.1\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.Cors.3.0.0\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Host.SystemWeb, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.Host.SystemWeb.2.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.Host.SystemWeb.3.0.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="Microsoft.Owin.Security, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.Owin.Security.2.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.Owin.Security.3.0.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
</Reference>
- <Reference Include="Microsoft.Owin.Security.Cookies">
- <HintPath>..\..\packages\Microsoft.Owin.Security.Cookies.2.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
+ <Reference Include="Microsoft.Owin.Security.Cookies, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\packages\Microsoft.Owin.Security.Cookies.3.0.0\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -83,9 +84,9 @@
<Reference Include="System.Web" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.ApplicationServices" />
- <Reference Include="System.Web.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <Reference Include="System.Web.Cors, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\Microsoft.AspNet.Cors.5.0.0\lib\net45\System.Web.Cors.dll</HintPath>
+ <HintPath>..\..\packages\Microsoft.AspNet.Cors.5.2.2\lib\net45\System.Web.Cors.dll</HintPath>
</Reference>
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
View
2  samples/Microsoft.AspNet.SignalR.Samples/Scripts/hubs.js
@@ -1,5 +1,5 @@
/*!
- * ASP.NET SignalR JavaScript Library v2.1.2-pre
+ * ASP.NET SignalR JavaScript Library v2.2.0-pre
* http://signalr.net/
*
* Copyright Microsoft Open Technologies, Inc. All rights reserved.
View
16 samples/Microsoft.AspNet.SignalR.Samples/Web.config
@@ -71,4 +71,20 @@
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
</configuration>
View
12 samples/Microsoft.AspNet.SignalR.Samples/packages.config
@@ -7,12 +7,12 @@
<package id="jQuery.Templates" version="0.1" />
<package id="jQuery.UI.Combined" version="1.9.0" targetFramework="net40" />
<package id="json2" version="1.0.2" targetFramework="net40" />
- <package id="Microsoft.AspNet.Cors" version="5.0.0" targetFramework="net45" />
- <package id="Microsoft.Owin" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Cors" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Host.SystemWeb" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Security" version="2.0.1" targetFramework="net45" />
- <package id="Microsoft.Owin.Security.Cookies" version="2.0.1" targetFramework="net45" />
+ <package id="Microsoft.AspNet.Cors" version="5.2.2" targetFramework="net45" />
+ <package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Cors" version="3.0.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Security" version="3.0.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Security.Cookies" version="3.0.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />
<package id="Twitter.Bootstrap" version="2.1.1" targetFramework="net40" />
View
4 src/Common/CommonVersionInfo.cs
@@ -2,6 +2,6 @@
using System.Reflection;
-[assembly: AssemblyVersion("2.1.2")]
+[assembly: AssemblyVersion("2.2.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: AssemblyInformationalVersion("2.1.2-pre")]
+[assembly: AssemblyInformationalVersion("2.2.0-pre")]
View
128 src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.core.js
@@ -1,6 +1,6 @@
/*global window:false */
/*!
- * ASP.NET SignalR JavaScript Library v2.1.2-pre
+ * ASP.NET SignalR JavaScript Library v2.2.0-pre
* http://signalr.net/
*
* Copyright Microsoft Open Technologies, Inc. All rights reserved.
@@ -100,7 +100,7 @@
isDisconnecting = function (connection) {
return connection.state === signalR.connectionState.disconnected;
},
-
+
supportsKeepAlive = function (connection) {
return connection._.keepAliveData.activated &&
connection.transport.supportsKeepAlive(connection);
@@ -342,7 +342,6 @@
connectingMessageBuffer: new ConnectingMessageBuffer(this, function (message) {
$connection.triggerHandler(events.onReceived, [message]);
}),
- onFailedTimeoutHandle: null,
lastMessageAt: new Date().getTime(),
lastActiveAt: new Date().getTime(),
beatInterval: 5000, // Default value, will only be overridden if keep alive is enabled,
@@ -403,7 +402,7 @@
state: signalR.connectionState.disconnected,
- clientProtocol: "1.4",
+ clientProtocol: "1.5",
reconnectDelay: 2000,
@@ -551,11 +550,21 @@
deferred.resolve(connection);
});
+ connection._.initHandler = signalR.transports._logic.initHandler(connection);
+
initialize = function (transports, index) {
var noTransportError = signalR._.error(resources.noTransportOnInit);
index = index || 0;
if (index >= transports.length) {
+ if (index === 0) {
+ connection.log("No transports supported by the server were selected.");
+ } else if (index === 1) {
+ connection.log("No fallback transports were selected.");
+ } else {
+ connection.log("Fallback transports exhausted.");
+ }
+
// No transport initialized successfully
$(connection).triggerHandler(events.onError, [noTransportError]);
deferred.reject(noTransportError);
@@ -571,92 +580,64 @@
var transportName = transports[index],
transport = signalR.transports[transportName],
- initializationComplete = false,
- onFailed = function () {
- // Check if we've already triggered onFailed, onStart
- if (!initializationComplete) {
- initializationComplete = true;
- window.clearTimeout(connection._.onFailedTimeoutHandle);
- transport.stop(connection);
- initialize(transports, index + 1);
- }
+ onFallback = function () {
+ initialize(transports, index + 1);
};
connection.transport = transport;
try {
- connection._.onFailedTimeoutHandle = window.setTimeout(function () {
- connection.log(transport.name + " timed out when trying to connect.");
- onFailed();
- }, connection._.totalTransportConnectTimeout);
+ connection._.initHandler.start(transport, function () { // success
+ // Firefox 11+ doesn't allow sync XHR withCredentials: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#withCredentials
+ var isFirefox11OrGreater = signalR._.firefoxMajorVersion(window.navigator.userAgent) >= 11,
+ asyncAbort = !!connection.withCredentials && isFirefox11OrGreater;
- transport.start(connection, function () { // success
- var onStartSuccess = function () {
- // Firefox 11+ doesn't allow sync XHR withCredentials: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#withCredentials
- var isFirefox11OrGreater = signalR._.firefoxMajorVersion(window.navigator.userAgent) >= 11,
- asyncAbort = !!connection.withCredentials && isFirefox11OrGreater;
+ connection.log("The start request succeeded. Transitioning to the connected state.");
- connection.log("The start request succeeded. Transitioning to the connected state.");
+ if (supportsKeepAlive(connection)) {
+ signalR.transports._logic.monitorKeepAlive(connection);
+ }
- if (supportsKeepAlive(connection)) {
- signalR.transports._logic.monitorKeepAlive(connection);
- }
+ signalR.transports._logic.startHeartbeat(connection);
- signalR.transports._logic.startHeartbeat(connection);
+ // Used to ensure low activity clients maintain their authentication.
+ // Must be configured once a transport has been decided to perform valid ping requests.
+ signalR._.configurePingInterval(connection);
- // Used to ensure low activity clients maintain their authentication.
- // Must be configured once a transport has been decided to perform valid ping requests.
- signalR._.configurePingInterval(connection);
+ if (!changeState(connection,
+ signalR.connectionState.connecting,
+ signalR.connectionState.connected)) {
+ connection.log("WARNING! The connection was not in the connecting state.");
+ }
- if (!changeState(connection,
- signalR.connectionState.connecting,
- signalR.connectionState.connected)) {
- connection.log("WARNING! The connection was not in the connecting state.");
- }
+ // Drain any incoming buffered messages (messages that came in prior to connect)
+ connection._.connectingMessageBuffer.drain();
- // Drain any incoming buffered messages (messages that came in prior to connect)
- connection._.connectingMessageBuffer.drain();
+ $(connection).triggerHandler(events.onStart);
- $(connection).triggerHandler(events.onStart);
+ // wire the stop handler for when the user leaves the page
+ _pageWindow.bind("unload", function () {
+ connection.log("Window unloading, stopping the connection.");
- // wire the stop handler for when the user leaves the page
- _pageWindow.bind("unload", function () {
- connection.log("Window unloading, stopping the connection.");
+ connection.stop(asyncAbort);
+ });
+ if (isFirefox11OrGreater) {
+ // Firefox does not fire cross-domain XHRs in the normal unload handler on tab close.
+ // #2400
+ _pageWindow.bind("beforeunload", function () {
+ // If connection.stop() runs runs in beforeunload and fails, it will also fail
+ // in unload unless connection.stop() runs after a timeout.
+ window.setTimeout(function () {
connection.stop(asyncAbort);
- });
-
- if (isFirefox11OrGreater) {
- // Firefox does not fire cross-domain XHRs in the normal unload handler on tab close.
- // #2400
- _pageWindow.bind("beforeunload", function () {
- // If connection.stop() runs runs in beforeunload and fails, it will also fail
- // in unload unless connection.stop() runs after a timeout.
- window.setTimeout(function () {
- connection.stop(asyncAbort);
- }, 0);
- });
- }
- };
-
- if (!initializationComplete) {
- initializationComplete = true;
- // Prevent transport fallback
- window.clearTimeout(connection._.onFailedTimeoutHandle);
-
- // The connection was aborted while initializing transports
- if (connection.state === signalR.connectionState.disconnected) {
- return;
- }
-
- connection.log(transport.name + " transport selected. Initiating start request.");
- signalR.transports._logic.ajaxStart(connection, onStartSuccess);
+ }, 0);
+ });
}
- }, onFailed);
+ }, onFallback);
}
catch (error) {
connection.log(transport.name + " transport threw '" + error.message + "' when attempting to start.");
- onFailed();
+ onFallback();
}
};
@@ -928,7 +909,6 @@
// Clear this no matter what
window.clearTimeout(connection._.beatHandle);
- window.clearTimeout(connection._.onFailedTimeoutHandle);
window.clearInterval(connection._.pingIntervalId);
if (connection.transport) {
@@ -951,8 +931,10 @@
delete connection._.negotiateRequest;
}
- // Ensure that tryAbortStartRequest is called before connection._deferral is deleted
- signalR.transports._logic.tryAbortStartRequest(connection);
+ // Ensure that initHandler.stop() is called before connection._deferral is deleted
+ if (connection._.initHandler) {
+ connection._.initHandler.stop();
+ }
// Trigger the disconnect event
$(connection).triggerHandler(events.onDisconnect);
View
146 src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.transports.common.js
@@ -64,6 +64,116 @@
return transportLogic.prepareQueryString(connection, url);
}
+ function InitHandler(connection) {
+ this.connection = connection;
+
+ this.startRequested = false;
+ this.startCompleted = false;
+ this.connectionStopped = false;
+ }
+
+ InitHandler.prototype = {
+ start: function (transport, onSuccess, onFallback) {
+ var that = this,
+ connection = that.connection,
+ failCalled = false;
+
+ if (that.startRequested || that.connectionStopped) {
+ connection.log("WARNING! " + transport.name + " transport cannot be started. Initialization ongoing or completed.");
+ return;
+ }
+
+ connection.log(transport.name + " transport starting.");
+
+ that.transportTimeoutHandle = window.setTimeout(function () {
+ if (!failCalled) {
+ failCalled = true;
+ connection.log(transport.name + " transport timed out when trying to connect.");
+ that.transportFailed(transport, undefined, onFallback);
+ }
+ }, connection._.totalTransportConnectTimeout);
+
+ transport.start(connection, function () {
+ if (!failCalled) {
+ that.initReceived(transport, onSuccess);
+ }
+ }, function (error) {
+ // Don't allow the same transport to cause onFallback to be called twice
+ if (!failCalled) {
+ failCalled = true;
+ that.transportFailed(transport, error, onFallback);
+ }
+
+ // Returns true if the transport should stop;
+ // false if it should attempt to reconnect
+ return !that.startCompleted || that.connectionStopped;
+ });
+ },
+
+ stop: function () {
+ this.connectionStopped = true;
+ window.clearTimeout(this.transportTimeoutHandle);
+ signalR.transports._logic.tryAbortStartRequest(this.connection);
+ },
+
+ initReceived: function (transport, onSuccess) {
+ var that = this,
+ connection = that.connection;
+
+ if (that.startRequested) {
+ connection.log("WARNING! The client received multiple init messages.");
+ return;
+ }
+
+ if (that.connectionStopped) {
+ return;
+ }
+
+ that.startRequested = true;
+ window.clearTimeout(that.transportTimeoutHandle);
+
+ connection.log(transport.name + " transport connected. Initiating start request.");
+ signalR.transports._logic.ajaxStart(connection, function () {
+ that.startCompleted = true;
+ onSuccess();
+ });
+ },
+
+ transportFailed: function (transport, error, onFallback) {
+ var connection = this.connection,
+ deferred = connection._deferral,
+ wrappedError;
+
+ if (this.connectionStopped) {
+ return;
+ }
+
+ window.clearTimeout(this.transportTimeoutHandle);
+
+ if (!this.startRequested) {
+ transport.stop(connection);
+
+ connection.log(transport.name + " transport failed to connect. Attempting to fall back.");
+ onFallback();
+ } else if (!this.startCompleted) {
+ // Do not attempt to fall back if a start request is ongoing during a transport failure.
+ // Instead, trigger an error and stop the connection.
+ wrappedError = signalR._.error(signalR.resources.errorDuringStartRequest, error);
+
+ connection.log(transport.name + " transport failed during the start request. Stopping the connection.");
+ $(connection).triggerHandler(events.onError, [wrappedError]);
+ if (deferred) {
+ deferred.reject(wrappedError);
+ }
+
+ connection.stop();
+ } else {
+ // The start request has completed, but the connection has not stopped.
+ // No need to do anything here. The transport should attempt its normal reconnect logic.
+ }
+ }
+ };
+
transportLogic = signalR.transports._logic = {
ajax: function (connection, options) {
return $.ajax(
@@ -206,13 +316,14 @@
throw new Error("Query string property must be either a string or object.");
},
- getUrl: function (connection, transport, reconnecting, poll) {
+ // BUG #2953: The url needs to be same otherwise it will cause a memory leak
+ getUrl: function (connection, transport, reconnecting, poll, ajaxPost) {
/// <summary>Gets the url for making a GET based connect request</summary>
var baseUrl = transport === "webSockets" ? "" : connection.baseUrl,