David Fowler
83dec1093a
Fixed flaky longpolling tests ( #1993 )
...
- Wait for disposal and removal of the connection
2018-04-13 00:42:31 -07:00
David Fowler
4a568e90d2
API review changes ( #1992 )
...
- Changed GetMessageBytes to return ReadOnlyMemory
- Make HandshakeProtocol.SuccessHandshakeData a readonly field
2018-04-13 00:25:02 -07:00
Mikael Mengistu
70c63fe9e8
Http.Connections.Client API Review changes ( #1987 )
2018-04-13 06:52:27 +00:00
Ahson Khan
0ee4a86564
Collapse AsSpan().Slice(..) into AsSpan(..) ( #1991 )
2018-04-12 23:15:47 -07:00
Mikael Mengistu
0053124ca4
Make Proxies Internal ( #1982 )
2018-04-13 00:38:16 +00:00
Mikael Mengistu
df4d901ae7
Fix 5 param On extension method ( #1984 )
2018-04-13 00:37:13 +00:00
Andrew Stanton-Nurse
24328b8e88
fix #1281 by adding support for DELETE endpoint on server ( #1925 )
2018-04-12 12:39:08 -07:00
Andrew Stanton-Nurse
0992db9fd2
fix #1914 by switching RedisProtocol to MsgPack ( #1968 )
2018-04-12 12:10:51 -07:00
David Fowler
8b1a7e9199
API review feedback ( #1974 )
...
- Remove SetHttpContext
- Remove HttpContextFeature
- Add and implement IHttpTransportFeature on HttpConnectionContext
- Remove ConnectionMetadataNames
2018-04-12 03:50:14 -07:00
James Newton-King
d4773e831c
Set default transport and application buffer sizes ( #1964 )
2018-04-12 18:23:00 +12:00
James Newton-King
7563ccae20
Always use TaskCreationOptions.RunContinuationsAsynchronously ( #1966 )
2018-04-12 18:21:20 +12:00
David Fowler
3c8c8ea8e1
React to Kestrel changes ( #1969 )
2018-04-11 20:29:17 -07:00
David Fowler
08f9990c39
Ensure there's a redis connection earlier
2018-04-11 15:25:38 -07:00
Mikael Mengistu
b8c3273cae
Dont always copy handlers ( #1945 )
2018-04-11 22:19:51 +00:00
David Fowler
8cc851ff9b
Clean up timer code with custom awaitable ( #1935 )
...
- Gets rid of locks by using an event loop
2018-04-11 10:39:29 -07:00
David Fowler
cb5bba36fc
Get off the event loop before dispatch ( #1952 )
2018-04-11 10:39:09 -07:00
James Newton-King
12b69a0fdb
Refactor HttpOptions in client ( #1942 )
...
- Rename HttpOptions to HttpConfigurationOptions
- Remove HttpConfigurationOptions from SignalR client project
- Updated client HttpConnection ctors
2018-04-11 20:20:04 +12:00
James Newton-King
b30c2fecbf
SSE formatting refactor ( #1916 )
2018-04-11 17:13:15 +12:00
James Newton-King
c83baf2b76
Remove params from message ctors ( #1931 )
2018-04-11 12:11:13 +12:00
Mikael Mengistu
13f7981010
Rename Callback to Configure in UseConnections ( #1939 )
2018-04-11 00:08:22 +00:00
Mikael Mengistu
e2169ceda6
Connect to Redis asynchronously ( #1922 )
2018-04-10 23:48:11 +00:00
Ben Adams
8a3516284e
Add GetMessageBytes to IHubProtocol ( #1915 )
2018-04-10 07:14:09 -07:00
Vegard Løkken
31dfe91962
Support async access token factory ( #1911 )
2018-04-10 05:34:10 -07:00
James Newton-King
6bc2ebb4c5
Use invariant culture and ordinal comparisons ( #1928 )
2018-04-10 16:52:19 +12:00
BrennanConroy
6d050140e5
Swtich to MessagePack-CSharp ( #1879 )
2018-04-09 17:04:32 -07:00
David Fowler
01089da84d
Use in for ReadOnlySequence ( #1900 )
2018-04-09 09:29:27 -07:00
David Fowler
95e868b68c
Remove JsonSerializer ( #1913 )
2018-04-09 02:56:46 -07:00
Ben Adams
406d8f9a81
readonly readonly structs ( #1908 )
2018-04-08 23:28:37 -07:00
James Newton-King
bd78785f8d
Minor DefaultHubLifetimeManager improvements ( #1904 )
2018-04-09 12:31:14 +12:00
David Fowler
9fd713c73a
Make MemoryBufferWriter a Stream ( #1907 )
...
- Get rid of LimitArrayPoolWriteStream and use MemoryBufferWriter in its place in the MessagePackProtocol implementation.
- Added tests for MemoryPoolBufferWriter and fixed a bug in CopyToAsync
- Added CopyTo(`IBufferWriter<byte>`)
- Changed MemoryBufferWriter to fill the underlying arrays that back segments, the segment size is now a minimum.
2018-04-08 16:11:17 -07:00
James Newton-King
27d18578d0
Use expression body properties and implicit arrays where possible ( #1906 )
2018-04-08 21:40:01 +12:00
James Newton-King
0f663cadc4
readonly all the things ( #1901 )
2018-04-08 15:47:01 +12:00
David Fowler
a3337eb6bd
Remove traces of ASP.NET Core Sockets ( #1899 )
2018-04-07 17:51:12 -07:00
David Fowler
c1049b722d
The grand unification of ConnectionContext ( #1895 )
...
This change rationalizes the 2 very similar abstractions that exist in Connections.Abstractions, IConnection and ConnectionContext. It also introduces an IConnectionFactory to SignalR that is used to create a new ConnectionContext for a HubConnection.
- HubConnection just completes both ends of the transport pipe instead of calling DisposeAsync.
- Implemented ConnectionContext on HttpConnection and added HttpConnectionFactory
- Updated tests
2018-04-07 16:19:01 -07:00
David Fowler
e3da7feab4
Clean up client ITransport interface ( #1893 )
...
- Transports own the pipe creation. The fact they are 2 sides is an implementation detail.
2018-04-07 15:11:42 -07:00
David Fowler
86083c0302
Removing native support for IObservable<T> ( #1890 )
...
- There are too many issues and questions with respect to back pressure and the buffering policy we should use when the client being streamed to can't support the data being pushed via OnNext.
As a result, we're dropping support for IObservable but keeping ChannelReader and we'll eventually support IAsyncEnumerable when that makes it into the BCL.
- Add sample showing Observable -> ChannelReader adaption
2018-04-07 15:10:39 -07:00
James Newton-King
acc0b7ad0d
Serialize NegotiateResponse with IBufferWriter ( #1881 )
2018-04-07 15:50:13 +12:00
David Fowler
f632330d7f
Allocate pipe writer stream per connection ( #1885 )
...
- Don't create the PipeWriterStream per operation, make it per Connection
- Reduce the buffer size for CopyToAsync operations to 4K where possible instead of 81K (the default)
2018-04-06 14:36:35 -07:00
David Fowler
e51676fb47
Policheck errors
2018-04-06 13:01:20 -07:00
David Fowler
e3d90bdf6a
Fix graceful closing of pipes ( #1882 )
...
- Closing pipes gracefully in most cases. The only case where we forcefully close the pipes is during application shutdown
- Return 404 if sending to connection after disposal
- Added tests
2018-04-06 10:59:40 -07:00
David Fowler
84d43cb2d8
Remove extra class ( #1884 )
...
- Merged 2 DI classes in SignalR
2018-04-06 08:16:19 -07:00
Mikael Mengistu
4ddf8664c0
Don't throw from Observer's OnNext ( #1872 )
2018-04-06 00:35:04 -07:00
James Newton-King
36edadabb4
Lock when sending data to connection ( #1876 )
2018-04-06 16:25:47 +12:00
James Newton-King
cb5ece8a24
HttpTransportType refactor ( #1873 )
...
- Rename file to HttpTransportType.cs
- Add HttpTransportType.None
- Move All to static readonly field
- Make TransportType on client and service HttpConnectionOptions consistent
- Move setting defaults into ctor
2018-04-06 16:18:47 +12:00
James Newton-King
921986d561
Fix AccessTokenFactory not being called with each request ( #1880 )
2018-04-06 15:46:36 +12:00
BrennanConroy
b0c4e9d0f7
0 byte read in WebSockets ( #1878 )
2018-04-05 18:50:30 -07:00
Andrew Stanton-Nurse
19b2fea0d8
Preserialize for all formats when sending through Redis ( #1843 )
2018-04-05 13:48:14 -07:00
David Fowler
39f693b9ed
Found these while looking at a flaky test ( #1871 )
...
- Fix crashing test
- Dispose the ClientWebsocket in StopAsync
2018-04-05 12:47:39 -07:00
BrennanConroy
b9e88923e7
Comment why we set X-Requested-With ( #1870 )
2018-04-05 11:38:15 -07:00
David Fowler
11343ea15d
Add logging by default to HubConnectionBuilder ( #1867 )
...
- Use the AddLogging extension method by default in the HubConnection
- Removed WithConsoleLogger extension methods
- Removed WithLoggerFactory extension method (moved to test only)
- Added WithLogger that uses the new the new ILoggerBuilder
2018-04-05 10:05:07 -07:00
David Fowler
35b6d81f77
Don't dispose on cancellation ( #1859 )
...
- We're already disposing now at the end of enumeration
2018-04-05 09:22:46 -07:00
David Fowler
61c3d0c403
Added Microsoft.AspNetCore.SignalR.Protocols.Json ( #1861 )
...
- Fixed package descriptions
- Call AddJsonProtocol from both the SignalR.Core (client and server)
2018-04-05 01:32:10 -07:00
James Newton-King
f7fc2647de
var all the things ( #1855 )
2018-04-05 18:41:13 +12:00
Andrew Stanton-Nurse
fccc9d1b50
fix #1815 by disposing linked cts ( #1849 )
2018-04-04 21:12:21 -07:00
BrennanConroy
32b4d5cc6c
Set X-Requested-With on all requests ( #1848 )
2018-04-04 17:12:50 -07:00
BrennanConroy
80f87e7730
Add Handshake timeout to C# Client ( #1840 )
2018-04-04 15:54:42 -07:00
David Fowler
490fd088f9
Merge branch 'release/2.1' into dev
2018-04-04 15:02:47 -07:00
David Fowler
924272ad1a
Revert "Merged release/2.1"
...
This reverts commit cf45fac634 , reversing
changes made to 313772ef03 .
2018-04-04 15:02:20 -07:00
David Fowler
cf45fac634
Merged release/2.1
2018-04-04 14:48:26 -07:00
David Fowler
1c7ca7fa3a
Remove lazily initialization of the pipes ( #1850 )
...
- This fixes race condition
2018-04-04 14:43:34 -07:00
David Fowler
5e190b404f
Remove lazily initialization of the pipes
...
- This fixes race condition
2018-04-04 13:00:20 -07:00
BrennanConroy
afa56e3012
MsgPack perf ( #1845 )
2018-04-04 07:11:16 -07:00
James Newton-King
e7b84b753b
Refactor HubConnectionBuilder ( #1830 )
2018-04-04 21:19:13 +12:00
Mikael Mengistu
7c2d9e87e9
Clean up pipe pair on transport start failure ( #1836 )
2018-04-03 17:08:04 -07:00
Mikael Mengistu
ba0131a731
Rename TransportTypes to HttpTransportTypes ( #1839 )
2018-04-03 16:00:20 -07:00
Pavel Krymets
d23f2beafc
Merge release/2.1 into dev ( #1834 )
2018-04-03 10:45:44 -07:00
BrennanConroy
221c95e0af
Couple logging additions ( #1827 )
...
- Added logging in a couple more places in HubConnection
- Increase DEFAULT_TIMEOUT_INTERVAL to 20 seconds
2018-04-02 19:25:47 -07:00
Pavel Krymets
6a1367ff70
Reaction to *Memory changes ( #1824 )
2018-04-02 16:44:31 -07:00
James Newton-King
3460d44848
Fix non-serializable tests ( #1820 )
2018-04-03 09:31:52 +12:00
BrennanConroy
5ce672dfe6
ThreadStatic MemoryBufferWriter ( #1821 )
2018-04-02 11:25:04 -07:00
BrennanConroy
6640f14e35
Detailed errors enabled for functional tests ( #1822 )
2018-04-02 10:42:26 -07:00
David Fowler
e9d58154ec
Added TCP client sample to HubSample ( #1805 )
...
- Ripped of Kestrel's SocketConnection to make a TcpConnection
IConnection implementation.
- Fixed issue with SignalR assuming there will always be a non-null user
on the ConnectionContext.
2018-04-02 09:50:50 -07:00
David Fowler
ef30e2e2df
Clean up the SSE client side transport ( #1816 )
...
- Renamed StreamPipeConnection to PipeReaderFactory
- Flow the transport cancellation token to the CopyToAsync routine
- Other small cleanup and nits to make the style consistent with the other pipe reader loops
- Return a cancelled ValueTask from PipeWriterStream.WriteAsync
- Move event stream request to start itself
- We no longer need to pass the tcs through.
- It also cleans up handling failure in start since the application pipe hasn't been read or written to
2018-04-01 21:11:59 -07:00
David Fowler
bb7cb14a1c
Clean up the logging style for HttpConnectionManager ( #1819 )
...
- Remove nameof usage
2018-04-01 19:34:11 -07:00
David Fowler
82bda4a9c8
Added micro benchmarks for SSE parsing and Writing ( #1818 )
2018-04-01 09:19:07 -07:00
James Newton-King
ca161e9bc8
Improve writing single characters with UTF8 text writer ( #1814 )
2018-04-01 17:34:19 +12:00
David Fowler
e6e45cea05
Change how HttpConnection sets headers ( #1806 )
...
- Removed SendUtils.PrepareRequst and instead used HttpClient.DefaultRequstHeaders to set the common headers to apply HttpOptions to all outbound requests
- Modified how we check for the user agent request testing
2018-03-31 22:23:09 -07:00
James Newton-King
04a22f23dd
Deserializing ISO formatted strings in method arguments ( #1812 )
2018-04-01 12:26:30 +12:00
David Fowler
ac5dfcf909
Merge pull request #1810 from aspnet/release/2.1
...
Change default handshake timeout (#1808 )
2018-03-31 12:27:46 -07:00
David Fowler
dc86690f04
Change default handshake timeout ( #1808 )
...
- 5 seconds seems to be too low for long polling's RTT. We often see super flaky tests and it seems like this is the best fix. Ideally, we would do something more sophisitcated than just timeout the entire time to parse.
2018-03-31 12:27:23 -07:00
BrennanConroy
90aa48c09f
Merge pull request #1798 from aspnet/release/2.1
...
Use IBufferWriter in IHubProtocol (#1791 )
2018-03-30 17:30:30 -07:00
BrennanConroy
903a9ea6a0
Use IBufferWriter in IHubProtocol ( #1791 )
2018-03-30 17:30:08 -07:00
David Fowler
0293e53e11
Handle uninitialized connections in disposal ( #1786 ) ( #1794 )
...
- We made a change to not initialize pipes up front
on connection creation. That change make it null ref in disposal because we didn't check if the pipes were initialized.
- Added a test
- Also fixed the EchoConnectionHandler in the functional ts tests.
2018-03-30 15:51:48 -07:00
David Fowler
eb7dc14c39
Handle uninitialized connections in disposal ( #1786 )
...
- We made a change to not initialize pipes up front
on connection creation. That change make it null ref in disposal because we didn't check if the pipes were initialized.
- Added a test
- Also fixed the EchoConnectionHandler in the functional ts tests.
2018-03-30 15:44:30 -07:00
Andrew Stanton-Nurse
a92b3a7288
Merge branch 'release/2.1' into dev
2018-03-30 15:26:44 -07:00
Andrew Stanton-Nurse
6b3a27e73c
Bedrock Renames ( #1777 )
2018-03-30 15:09:19 -07:00
James Newton-King
569fb79776
Merge pull request #1789 from aspnet/release/2.1
...
Re-enable ConnectionCanSendAndReceiveMessages + logging (#1778 )
2018-03-31 08:46:32 +13:00
James Newton-King
0362905a70
Re-enable ConnectionCanSendAndReceiveMessages + logging ( #1778 )
2018-03-31 08:45:33 +13:00
BrennanConroy
ec66d236ac
Merge pull request #1785 from aspnet/release/2.1
...
Add detailed error option (#1763 )
2018-03-30 11:30:44 -07:00
BrennanConroy
44b667b3e6
Add detailed error option ( #1763 )
2018-03-30 11:30:07 -07:00
David Fowler
c29c1b3ec6
Merge pull request #1783 from aspnet/release/2.1
...
Release/2.1
2018-03-30 02:33:28 -07:00
David Fowler
b5a2fcb96a
Dispose the http client in DisposeAsync ( #1780 )
...
- This layer of the stack is no longer reusable and
this disposable was removed (I assume by mistake) in the big refactoring
2018-03-30 01:57:14 -07:00
David Fowler
a26e6f5a30
Make shutdown logic for SSE and LongPolling more similar to WebSockets ( #1779 )
...
- Cancel reading from the application when initiating a transport stop
- Complete each side of the pipe in the place where the pipe is being consumed
- Errors from sending end up getting sent to the application
- The Running task never throws
- Removes ContinueWith
2018-03-30 01:50:30 -07:00
BrennanConroy
5cfc03ffe9
Merge pull request #1775 from aspnet/release/2.1
...
Fix internal HubConnection state when handshake fails (#1774 )
2018-03-29 16:35:55 -07:00
BrennanConroy
46f27cdd0b
Fix internal HubConnection state when handshake fails ( #1774 )
2018-03-29 16:35:31 -07:00
David Fowler
80b842e987
Merge branch 'release/2.1' into dev
2018-03-29 10:05:30 -07:00
David Fowler
7a53e07623
Parse data as it comes in off the wire in the .NET client and server ( #1766 )
...
- Change websockets and the POST end point to send data unbuffered.
- Update tests to handle partial frames
2018-03-29 10:03:59 -07:00
James Newton-King
2f9942e1f2
Merge pull request #1765 from aspnet/release/2.1
...
Make HubConnection write messages directly to the PipeWriter (#1762 )
2018-03-29 20:27:14 +13:00
James Newton-King
cddf46c0cd
Make HubConnection write messages directly to the PipeWriter ( #1762 )
2018-03-29 20:26:09 +13:00
James Newton-King
a4dd4da7a2
Merge pull request #1760 from aspnet/release/2.1
...
Handshake and negotiation optimization (#1731 )
2018-03-29 17:51:40 +13:00