Commit Graph

470 Commits

Author SHA1 Message Date
Pawel Kadluczka cc42b0eaef Fixing a bug where cancellation could result in HubException
When the client cancels a streaming method the server would send an error completion. This was not correct because cancellation is not an error. We did not see this because our client ignores any messages for a given streaming invocation after sending a CancelInvokationMessage but other clients may want to drain messages before considering a streaming method canceled.
2017-11-01 20:20:43 -07:00
BrennanConroy 8c446fc02d
[Redis] Save a few bytes for acks (#1070) 2017-11-01 16:48:36 -07:00
Nate McMaster e15a38a14c Pin package and tool versions to make build more repeatable 2017-11-01 16:40:51 -07:00
BrennanConroy 2419867dfc
Handle errors in Redis subscription callbacks (#1069) 2017-11-01 10:29:02 -07:00
BrennanConroy 83bb07d5a4
Fix parameter name (#1066) 2017-10-30 12:55:12 -07:00
Pawel Kadluczka 18f770e937
Late parameter binding (#1049)
Late parameter binding

Storing exception thrown during parameter binding and rethrowing when the method is about to throw. This allows completing invocations with a HubException and keeping the connection open.
We will also no longer close the connection if parameters for client side methods cannot be bound. We will log and continue.

Fixes: #818

(Also fixing #1005 because I was just touching this line)
2017-10-30 11:31:57 -07:00
BrennanConroy 30e7422407 Enable reconnect for Redis connection by default (#1037) 2017-10-24 14:30:13 -07:00
Mikael Mengistu 1768a081ba Updating default pattern(#1046) 2017-10-23 22:20:31 -07:00
Pawel Kadluczka caff492cdc Removing sending OPTIONS request if WebSocket transport requested (#1036)
Removing sending OPTIONS request if WebSocket transport requested

This removes session stickiness requirement for WebSockets

Fixes: #1035
2017-10-23 10:28:33 -07:00
BrennanConroy 9cc5d13a40 [Redis] Adding same group to connection multiple times should NOP (#1040)
* Added some additional tests too
2017-10-20 14:29:08 -07:00
Pawel Kadluczka 8d1d6d0300 Adding StreamCompletion message (C#) 2017-10-19 18:20:03 -07:00
Mikael Mengistu 04d4da2987 Replace Received Event with OnReceived (#1006) 2017-10-18 17:10:51 -07:00
BrennanConroy bb308ff72e LoggerDefine for Redis (#1002) 2017-10-18 10:46:03 -07:00
Gurgen Hakobyan b3ac9f4bf8 Not very important code optimization (#1030)
Code optimization
2017-10-18 09:23:32 -07:00
BrennanConroy 0e70c7950b Adding Redis Unit tests (#1013) 2017-10-17 15:48:29 -07:00
BrennanConroy 878a70226c [Redis] Remove groups properly from connection diconnection (#1010)
And properly short circuit group actions for local connections
2017-10-17 14:15:00 -07:00
gurgen af286c81bb Groups collection without lock 2017-10-17 12:06:05 -07:00
BrennanConroy de34990241 Short Circuit message to local connection in Redis (#1009) 2017-10-11 13:17:49 -07:00
BrennanConroy 8701baf73d Add negotiate timeout option to hub options (#1003) 2017-10-11 08:59:37 -07:00
BrennanConroy de2e0967c3 Adding CancelInvocation message (#979)
* For Streaming only. And C# client only.
2017-10-06 15:55:39 -07:00
ivankarpey 665f166d67 fix issue with incorrect user detection when Invoking for User (#747)
* fix issue with incorrect user detection when Invoking for User

* fix failed testcases

* use proper extension method to avoid potential null reference exception

* fix for channel name in redis version + follow SignalR team recommendations

* remove unncessary freespace

* remove whitespaces

* introduce IUserIdProvider to resolve user id

* Move IUserIdProvider from HubLifetimeManager to HubConnectionContext

* setting user id to connection context in hubendpoint
2017-10-06 11:58:18 -07:00
Kai Ruhnau 3c5d283689 Fix the VarInt example for the 2GiB
`0x7fffffff` has 31 binary ones. The first four bytes of the VarInt account for 4*7=28, so the fifth byte only needs the remaining three
2017-10-06 10:38:21 -07:00
Mikael Mengistu 72514f3943 Removing the connected event (#989) 2017-10-05 11:12:18 -07:00
Pawel Kadluczka 7c90e80b3f Merge branch 'rel/1.0.0-alpha2' into dev 2017-10-02 10:07:16 -07:00
Pawel Kadluczka 70df19c8a2 Fixing MsgPack serializing byte[] as string Part 1
Enabling sending byte[] from server to client.
2017-09-29 17:05:24 -07:00
Pawel Kadluczka 05da66ada0 Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-28 17:52:25 -07:00
Pawel Kadluczka 4f4fb174ea Replacing 8-byte-long length prefix with varint 2017-09-28 17:00:49 -07:00
David Fowler 2adf24d1c6 Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-25 23:44:25 -07:00
David Fowler e17cdae046 Added overloads from 0-n arguments (#949)
- Added 0 arg overload for InvokeAsync
2017-09-25 23:42:05 -07:00
David Fowler 9df8d2f795 Remove the params argument from IClientProxy (#946)
* Remove the params argument from IClientProxy
- This allows passing arrays without having to explicitly ToArray() or AsEnumerable()
- Added overloads up to 10 arguments
- Added tests
2017-09-25 21:01:52 -07:00
David Fowler 000f9cb192 Initial support for websocket subprotocols (#933)
* Initial support for websocket subprotocols
- Exposes a SubProtocol property on WebSocketOptions that picks the
protocol for all connections on the end point.
- This is required for things like mqtt over websockets (the SubProtocol in
this case is something like mqtt or mqttv3.1)
- Added test

#402
2017-09-25 15:17:45 -07:00
David Fowler 5497c7d4ce Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-25 08:31:02 -07:00
David Fowler 26255cc29c Check for null before sending to a specific connection id (#935)
* Check for null before sending to a specific connection id
- Added some tests for the DefaultHubLifetimeManager

#905
2017-09-25 08:26:24 -07:00
moozzyk c0713c9916 Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-25 08:17:27 -07:00
Pawel Kadluczka 0267695656 Exceptions thrown during writing should close the connection
We need to close the connection if there is an exception when writing to the transport on the server side. Currently if an exception happens it leaves the connection in an unsable state - after the exception no messages from the server will be sent to the client because the writing loop is terminated. Ignoring the message could cause hangs on the client side since we can fail while writing a completion message. In this case if the client is awaiting the invocation it will hang because the task will never be completed.
2017-09-25 08:13:46 -07:00
David Fowler 65cd41dbf5 Block POST requests for websocket connections (#934) 2017-09-23 17:49:19 -07:00
Pawel Kadluczka 8743723ece Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-21 23:00:20 -07:00
Pawel Kadluczka 4db78685dc camelCasing objects serialized by JsonHubProtocol
Fixes: #859
2017-09-21 22:58:59 -07:00
Pawel Kadluczka 6ed3f6d1aa Enabling hub connection with customized hub protocols 2017-09-21 22:57:07 -07:00
Andrew Stanton-Nurse 786980bc3f add names to EventIds used by logger extensions (#927) 2017-09-21 17:36:50 -07:00
Pawel Kadluczka 126901a08f Adding default ctors for HubProtocols 2017-09-21 15:30:23 -07:00
Pawel Kadluczka ba25dee141 Enabling customizing serialization settings in MessagePack protocol 2017-09-21 15:30:23 -07:00
Tim Seaward bcda95353e Remove extra span (#922) 2017-09-21 03:30:05 -07:00
Tim Seaward f71e31a1cd Fix the double buffer rent/free (#921)
* Fix the double buffer rent/free

* Fix the double cast to span
2017-09-20 23:30:59 -07:00
Pawel Kadluczka dd07ab1735 Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-20 15:31:56 -07:00
BrennanConroy 4e9a7be7dd SignalR Core Logging (#889) 2017-09-20 15:13:26 -07:00
FTWinston a7fb243501 Added typed HubContext 2017-09-19 16:16:31 -07:00
David Fowler 24455da8fb Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-18 20:46:14 -07:00
Pawel Kadluczka 8c9016cfbd Removing AspNetCoreVersion for a package reference 2017-09-18 17:26:02 -07:00
David Fowler 48d97bf271 Turned Stream into StreamAsync (#902)
* Turned Stream into StreamAsync
- Before we were fire and forgetting the invocation that initiated
the streaming, this changes that so that the caller now has to await
to get the channel.

#899
2017-09-18 16:44:18 -07:00
David Fowler 2efbd6a95a Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-18 14:14:23 -07:00
David Fowler a93e4be82f Added Cancellation support (#897)
* Added Cancellation support
- Added ConnectionAbortedToken to the HubConnectionContext. This allows
arbitrary code to access a handle that represents the connection lifetime
without handling OnDisconnectedAsync on the hub itself.
- Expose Abort on HubConnectionContext to allow server side methods to
abort the connection.
- Use the Abort to stop the main loop when unexpected invocation errors happen.
- Use the connection aborted token as unsubscribe from the IObservable and to complete
the IAsyncEnumerator for streaming results.
2017-09-18 12:47:38 -07:00
BrennanConroy 0159d45f54 Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-15 11:05:04 -07:00
BrennanConroy 9a67ac5341 Make sure socket closed is logged 2017-09-15 11:03:51 -07:00
Pawel Kadluczka b093f2b279 Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-13 13:55:06 -07:00
Pawel Kadluczka d226b20756 Rename With/GetTransportType to With/GetTransport 2017-09-13 09:46:17 -07:00
David Fowler 11cc57ee0e Merge branch 'rel/1.0.0-alpha1' into dev
# Conflicts:
#	src/Microsoft.AspNetCore.SignalR.Client.Core/Microsoft.AspNetCore.SignalR.Client.Core.csproj
2017-09-13 09:20:53 -07:00
David Fowler 2e695c935e Made tweaks to .NET client logging API (#869)
- Removed ConnectionFactoryDelegate and used Func<IConnection>
- Changed WithLogger that accepts ILoggerFactory to WithLoggerFactory
- Made UseLogger configure the existing ILoggerFactory or create a LoggerFactory
- Add support for setting the log level for console logs
- Updated tests
2017-09-13 09:18:06 -07:00
Pawel Kadluczka 5d7b706c4d Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-13 09:15:08 -07:00
Pawel Kadluczka dbe4b4025b Merge branch 'pawelka/msgpack-fixes' into rel/1.0.0-alpha1 2017-09-13 09:14:16 -07:00
Pawel Kadluczka 1453f419a8 MessagePack Serialization fixes
* serializing user objects as maps (#863)
* enabling serializing objects that potentially cannot be deserialized (#862)
2017-09-13 08:50:04 -07:00
BrennanConroy 30f16fcf4b Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-12 13:45:56 -07:00
BrennanConroy 2d4b2239a9 Reduce C# client logging and add HubProtocol log (#857) 2017-09-12 13:45:11 -07:00
Pawel Kadluczka 240c09034e Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-12 13:08:15 -07:00
Pawel Kadluczka 35683fb2b8 Fixing a bug where adding protocol with build would have no effect 2017-09-12 13:06:38 -07:00
BrennanConroy ef4da90c91 Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-11 16:55:57 -07:00
BrennanConroy 393ab6a4f0 Add extension method to get HttpContext on HubConnectionContext (#849) 2017-09-11 16:55:32 -07:00
Pawel Kadluczka eec4b33cff Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-07 14:25:43 -07:00
Pawel Kadluczka 62bbe943e8 Make sure long polling transport can survive http client timeout 2017-09-07 14:14:52 -07:00
Pawel Kadluczka 225d2ed6f1 Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-07 10:30:31 -07:00
Pawel Kadluczka 4ac8e786cf Adding HubConnectionBuilder 2017-09-07 10:04:42 -07:00
Pawel Kadluczka 8ff6a4b624 Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-07 09:52:28 -07:00
Pawel Kadluczka 9e614b6cc7 Initializing HubOptions.JsonSerializationSettings to default settings 2017-09-07 09:51:20 -07:00
Pawel Kadluczka 269e1d1b5e Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-05 12:22:49 -07:00
Pawel Kadluczka ceff4bd7da Exceptions from user's event handlers should be caught and logged
Otherwise they can spoil event queue and make the client not raise the Received event anymore

Fixes: #818
2017-09-05 12:21:47 -07:00
Nate McMaster d3ae3abe2a Use PackageLineup to manage PackageReference versions 2017-09-01 16:34:32 -07:00
Mikael Mengistu 8ec2848646 AllExcept for Dynamic and Typed Hubs (#796) 2017-08-31 15:30:19 -07:00
Pawel Kadluczka 5dceaa8149 Adding Microsoft.AspNetCore.SignalR.Client 2017-08-31 10:10:02 -07:00
Pawel Kadluczka 36acebf9fb Renaming Microsoft.AspNetCore.SignalR.Client to Microsoft.AspNetCore.SignalR.Client.Core 2017-08-31 10:10:02 -07:00
Pawel Kadluczka 521eed1438 Renaming Microsoft.AspNetCore.SignalR.Http to Microsoft.AspNetCore.SignalR 2017-08-31 10:10:02 -07:00
Pawel Kadluczka fa1f7f0b13 Renaming Microsoft.AspNetCore.SignalR to Microsoft.AspNetCore.SignalR.Core 2017-08-31 10:10:02 -07:00
BrennanConroy b8d2d24b67 Log connection resets as trace not error (#799) 2017-08-30 14:57:26 -07:00
BrennanConroy 5ff5c38325 Add Group Add and Remove acks (#780) 2017-08-30 14:07:23 -07:00
Nate McMaster 9c0dc52d67 Use Directory.Build.props/targets 2017-08-29 10:17:20 -07:00
Mikael Mengistu b60e598277 Setting the User-Agent header (#759) 2017-08-27 16:35:28 -07:00
Mikael Mengistu a200cd46b1 Use ForceAsyncAwaiter to make sure we're not on the app SyncContext (#758) 2017-08-25 14:02:17 -07:00
Pawel Kadluczka bcd5a1bd6e Filtering out SSE tests for browsers with no EventSource 2017-08-24 15:33:24 -07:00
BrennanConroy a702713cd4 SignalR C# Client logging (#752) 2017-08-24 08:37:05 -07:00
BrennanConroy b8a936f2c1 Use IApplicationLifetime instead of IHostedService (#757) 2017-08-24 00:10:18 -07:00
BrennanConroy 978f5cebc0 Starting HubOptions (#743)
* Added JsonSerializerSettings
2017-08-23 15:30:08 -07:00
Mikael Mengistu d469cc3151 Clients Subset - AllExcept (#700) 2017-08-22 17:33:27 -07:00
BrennanConroy 345190e6a9 Add timeout to Negotiate (#736) 2017-08-18 15:51:01 -07:00
BrennanConroy a4053acd06 Give Client a chance to receive Close Frame from Server (#730) 2017-08-18 09:56:40 -07:00
Pawel Kadluczka 5ad5f36f88 Changing length prefixing to separator for JSON C# 2017-08-18 09:50:45 -07:00
BrennanConroy b12451025f Exit OnConnected early if Negotiate fails (#733) 2017-08-17 23:34:45 -07:00
Pawel Kadluczka a359da0c44 Length prefixing base64 encoded messages
... in preparation for pipeline conversion
2017-08-17 09:58:16 -07:00
Pawel Kadluczka 5b4cc95583 Removing unnecessary dependency 2017-08-17 09:30:57 -07:00
Pawel Kadluczka 4898c0d3df Integrating MsgPack support in TS client 2017-08-11 11:44:52 -07:00
Pawel Kadluczka 9eabce1b02 Enabling tests which would have prevented a bug 2017-08-11 11:22:45 -07:00
BrennanConroy b393200fd3 SSE StopAsync should ignore exception (handled elsewhere) (#708) 2017-08-10 14:18:34 -07:00