Commit Graph

100 Commits

Author SHA1 Message Date
David Fowler abe139ee16
Make the protocol and messages public (#1994)
* Move types to a .Protocol namespace
2018-04-13 01:53:41 -07:00
Andrew Stanton-Nurse 0992db9fd2
fix #1914 by switching RedisProtocol to MsgPack (#1968) 2018-04-12 12:10:51 -07:00
David Fowler 08f9990c39
Ensure there's a redis connection earlier 2018-04-11 15:25:38 -07:00
James Newton-King c83baf2b76
Remove params from message ctors (#1931) 2018-04-11 12:11:13 +12:00
Mikael Mengistu e2169ceda6
Connect to Redis asynchronously (#1922) 2018-04-10 23:48:11 +00:00
James Newton-King 6bc2ebb4c5
Use invariant culture and ordinal comparisons (#1928) 2018-04-10 16:52:19 +12:00
David Fowler 95e868b68c
Remove JsonSerializer (#1913) 2018-04-09 02:56:46 -07:00
James Newton-King 0f663cadc4
readonly all the things (#1901) 2018-04-08 15:47:01 +12:00
Andrew Stanton-Nurse 19b2fea0d8
Preserialize for all formats when sending through Redis (#1843) 2018-04-05 13:48:14 -07:00
James Newton-King f7fc2647de
var all the things (#1855) 2018-04-05 18:41:13 +12:00
James Newton-King e7b84b753b
Refactor HubConnectionBuilder (#1830) 2018-04-04 21:19:13 +12:00
Andrew Stanton-Nurse 6b3a27e73c
Bedrock Renames (#1777) 2018-03-30 15:09:19 -07:00
James Newton-King 7f86b92f7e
Handshake and negotiation optimization (#1731) 2018-03-29 17:50:45 +13:00
James Newton-King 8c84518ecc
Message writing optimization (#1683) 2018-03-29 11:03:40 +13:00
David Fowler 6583e5fb47
Improved allocations and throughput for broadcast scenarios (#1660)
- Don't allocate when enumerating connections
- Don't allocate tasks unless we truly go async
- Don't get the timestamp, just write the pings always (if there's no ongoing write)
- Track the time since last keep alive write instead of the last write
- ValueTask all the things!
- Renamed HubConnectionList to HubConnectionStore
2018-03-21 09:03:36 -07:00
BrennanConroy db0dc0f960
Ignore writeasync failures when sending to multiple connections (#1589) 2018-03-16 16:48:05 -07:00
BrennanConroy c640f422e0
Pascal case formatted log parameter names (#1615) 2018-03-16 12:13:27 -07:00
James Newton-King 2d6077db4a
Removed params from proxy's SendAsync and rename to SendCoreAsync (#1605) 2018-03-16 14:05:22 +13:00
Andrew Stanton-Nurse 2b68db873a
add AddRedis overload that takes connection string (#1588) 2018-03-14 16:24:28 -07:00
David Fowler e1bb2215e5
Remove the Channel<HubMessage> from the HubConnectionContext (#1468)
* Remove the Channel<HubMessage> from the HubConnectionContext
- Replace the channel with a single lock around the pipewriter. Since writes are always synchronous, the lock is held for a very short time.
- We were only using them in this scenario for handling multiple producers (the hub output, the keep alive ping and the broadcast).
- Handle the scenario where there's back pressure (when we use pipes that are bounded) and give callers a single task representing when back pressure is released.
- Handle synchronous exceptions in RedisHubLifetimeManager
- Fixed benchmarks
2018-02-17 10:22:11 -08:00
Dona278 551158c239 Fixed exception during deserialization of a message with Redis (#1426)
Changed wrong message type used during deserialization in "SubscribeToUser"
2018-02-14 11:30:32 -08:00
Andrew Stanton-Nurse 0435b6dc6e
add headers and revamp msgpack tests (#1382) 2018-02-07 09:36:29 -08:00
BrennanConroy d38764a8f0
Rename InvokeAsync to SendAsync on the server (#1312) 2018-01-19 11:32:50 -08:00
BrennanConroy dfe0697f06
EventId starts at 1 for logging (#1318) 2018-01-18 16:11:43 -08:00
Mikael Mengistu 89b532c985
Invoke Users (#1257) 2018-01-08 17:58:42 -08:00
Mikael Mengistu 8b34b7f2ae
Invoke Multiple Groups (#1254) 2018-01-05 13:57:19 -08:00
Mikael Mengistu 738617266e
Invoke Multiple Connections (#1242) 2017-12-21 15:19:43 -08:00
Andrew Stanton-Nurse 00a6dc983a
Fix #1170 by removing invocationId from non-blocking calls (#1218) 2017-12-19 10:40:58 -08:00
Mikael Mengistu eb2668e74e
AllExcept for Groups - GroupExcept (#1204) 2017-12-15 17:34:08 -08:00
Andrew Stanton-Nurse c1d2024864
Implement #1156 by having the server send Ping messages (#1161) 2017-12-04 14:43:27 -08:00
Andrew Stanton-Nurse cb3124be17
First pass at Keep Alive (#1119)
This adds the Ping message type and support for sending/receiving it in the Hub Protocols. It does not add the logic to transmit keep-alive frames.
2017-11-16 09:45:13 -08:00
Pawel Kadluczka ff12b9b20c Replacing StreamCompletion with StreamInvocation 2017-11-13 10:50:15 -08:00
BrennanConroy 9371e7b50a
[Redis] Reorder some code to make it less spaghetti (#1081) 2017-11-02 18:38:20 -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
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
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
BrennanConroy bb308ff72e LoggerDefine for Redis (#1002) 2017-10-18 10:46:03 -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
BrennanConroy de34990241 Short Circuit message to local connection in Redis (#1009) 2017-10-11 13:17:49 -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
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
Nate McMaster d3ae3abe2a Use PackageLineup to manage PackageReference versions 2017-09-01 16:34:32 -07:00
Pawel Kadluczka fa1f7f0b13 Renaming Microsoft.AspNetCore.SignalR to Microsoft.AspNetCore.SignalR.Core 2017-08-31 10:10:02 -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