Commit Graph

586 Commits

Author SHA1 Message Date
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
James Newton-King 7f86b92f7e
Handshake and negotiation optimization (#1731) 2018-03-29 17:50:45 +13:00
Mikael Mengistu 2bf962d362
Merge pull request #1757 from aspnet/release/2.1
Always flush in WebSocketsTransport (#1756)
2018-03-28 18:12:31 -07:00
BrennanConroy d5dafae2cc Always flush in WebSocketsTransport (#1756) 2018-03-28 18:03:48 -07:00
James Newton-King 6de4ac2880
Merge pull request #1754 from aspnet/release/2.1
Message writing optimization (#1683)
2018-03-29 11:08:13 +13:00
James Newton-King 8c84518ecc
Message writing optimization (#1683) 2018-03-29 11:03:40 +13:00
David Fowler db3441cf93 Merged release/2.1 2018-03-28 14:10:45 -07:00
David Fowler 19b9dca268
Change IHubProtocol interface to support partial parsing (#1745)
- These are the finishing touches before we disable batching on the
C# client and on the server. We're changing the IHubProtocol interface to
modify the input buffer with what was consumed. We're also changing it
to parse a single message at a time to be match what output writing does.
- Added TryParseResponseMessage and made it look like TryParseRequestMessage
2018-03-28 12:08:16 -07:00
David Fowler 4c6c0aa8a4 Merge branch 'release/2.1' into dev 2018-03-27 23:12:00 -07:00
Andrew Stanton-Nurse cfaa123eb8 IConnection refactoring (#1718)
- IConnection is now single-use and HubConnection creates a new instance
for reconnecting
- IConnection is just a Pipe now, no more events
2018-03-27 23:02:07 -07:00
David Fowler d598a909a2 Merge branch 'release/2.1' into dev 2018-03-27 10:26:57 -07:00
David Fowler 185453908f
Remove HubConnectionContext parameter from IHubProtocolResolver (#1735) 2018-03-27 10:25:00 -07:00
David Fowler dcd773d10d Merged release/2.1 2018-03-27 03:03:10 -07:00
David Fowler 7a9160f3e0
React to https://github.com/aspnet/KestrelHttpServer/pull/2428 (#1734) 2018-03-27 02:02:29 -07:00
David Fowler 434147fe8e Merge branch 'release/2.1' into dev 2018-03-27 00:00:13 -07:00
David Fowler b78e70fadb
Use more pooled Utf8BufferTextReaders (#1728)
- Use it in the HandshakeProtocol
- Move CreateJsonTextReader to JsonUtils
2018-03-26 23:32:43 -07:00
unknown 678265259d Merge remote-tracking branch 'origin/release/2.1' into dev 2018-03-26 17:30:38 -07:00
James Newton-King 79b51ad642
Added logging of .NET client HTTP requests (#1723) 2018-03-27 12:57:13 +13:00
David Fowler b8285b8356
Don't create the span on netstandard (#1721)
- Directly pin the char[]
- Changed Utf8BufferTextReader to use the Utf8Decoder
- It copies whatever it can into the char buffer allocated in a stateful way (it's more efficient).
- Added tests for unicode and ascii reading
- Added a thread static cache
2018-03-26 14:36:08 -07:00
David Fowler 65204ec6f2
Small changes (#1714)
- Don't allocate for empty arrays.
- Don't allocate the list of pre-serialized messages until writing
2018-03-25 12:38:51 -07:00
Damir Ainullin dd9369ece8 Removed excessive null check because string.Join can't return null (#1716) 2018-03-25 10:13:07 -07:00
David Fowler cb05ce4e0b
Progress towards deleting Sockets.Abstractions (#1705)
* Progress towards deleting Sockets.Abstractions
- Moved our custom DefaultConnectionContext to Sockets.Http and renamed it to HttpConnectionContext.
- Renamed ConnectionManager to HttpConnectionManager
- Use DefaultConnection in tests and benchmarks
- Delete ConnectionMetadata
2018-03-24 04:21:47 -07:00
David Fowler 2e63e5afe3
The rename games part 1 of many (#1696)
- React to rename of EndPoint to ConnectionHandler
- Rename UseSockets to UseConnections
- Rename MapEndPoint to MapConnectionHandler
- Rename HttpSocketOptions to HttpConnectionOptions
2018-03-22 22:35:55 -07:00
BrennanConroy a47e1051e8
Add protocol version to handshake (#1666) 2018-03-22 15:54:35 -07:00
David Fowler f1a3775247
Copy HttpContext properties for long polling transport (#1684)
- The long polling transport simulates a persistent connection
over multiple http requests. In order to expose common http request
properties, we need to copy them to a fake http context on the first poll
and set that as the HttpContext exposed via the IHttpContextFeature.
2018-03-22 15:24:35 -07:00