Commit Graph

1066 Commits

Author SHA1 Message Date
BrennanConroy 44b667b3e6
Add detailed error option (#1763) 2018-03-30 11:30:07 -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
James Newton-King 51fb15d6cf
Client logging fixes and improvements (#1773) 2018-03-30 16:24:38 +13:00
BrennanConroy 46f27cdd0b
Fix internal HubConnection state when handshake fails (#1774) 2018-03-29 16:35:31 -07:00
BrennanConroy 476d337989
Move Cpp Client to main repo (#1703) 2018-03-29 14:58:54 -07:00
Andrew Stanton-Nurse a4d0bf2e3a
collect log messages during browser tests (#1670) 2018-03-29 10:11:18 -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 cddf46c0cd
Make HubConnection write messages directly to the PipeWriter (#1762) 2018-03-29 20:26:09 +13:00
James Newton-King 7f86b92f7e
Handshake and negotiation optimization (#1731) 2018-03-29 17:50:45 +13:00
BrennanConroy d5dafae2cc Always flush in WebSocketsTransport (#1756) 2018-03-28 18:03:48 -07:00
Mikael Mengistu eb2fa9bacd
Fix more flaky tests (#1750) 2018-03-28 15:27:40 -07:00
James Newton-King 8c84518ecc
Message writing optimization (#1683) 2018-03-29 11:03:40 +13:00
Mikael Mengistu 890c8566d6
Fix WebSocketsSupportedConditionAttribute version check (#1751) 2018-03-28 14:56:03 -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
Nate McMaster (automated) 7a428534c3
Update dependencies.props
[auto-updated: dependencies]
2018-03-28 11:04:33 -07:00
Mikael Mengistu c631b87c6d
Check for Websockets to fix flaky tests (#1740) 2018-03-28 00:49:37 -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
Mikael Mengistu 5b85e8309e
Adding File Header (#1741) 2018-03-27 21:54:11 -07:00
David Fowler 5cb9b887d4 Upgraded deps 2018-03-27 19:18:50 -07:00
Mikael Mengistu 3952eacfaa
Add ability to remove all handlers with just the method name (#1729) 2018-03-27 14:06:56 -07:00
David Fowler bc91191876
More benchmark command fixes 2018-03-27 13:26:55 -07:00
David Fowler df317cffca
Fixing benchmarks 2018-03-27 13:17:22 -07:00
David Fowler 185453908f
Remove HubConnectionContext parameter from IHubProtocolResolver (#1735) 2018-03-27 10:25:00 -07:00
BrennanConroy b7e2678592
Add new SignalR scenarios (#1730) 2018-03-27 10:14:08 -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 b78e70fadb
Use more pooled Utf8BufferTextReaders (#1728)
- Use it in the HandshakeProtocol
- Move CreateJsonTextReader to JsonUtils
2018-03-26 23:32:43 -07:00
Mikael Mengistu cc52beec17
Fallback for TS client 2018-03-27 00:18:36 +00: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 ddc0e4fb3a
Run benchmarks on .NET Core 2.1 (#1722)
- Spoiler alert, it's much faster for the ones I ran at least
2018-03-25 21:07:17 -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
David Fowler 733a3b3c2d
Upgrade the dependencies (#1712) 2018-03-25 00:51:53 -07:00
James Newton-King 4f5bc7046e
Add conditional test attribute for WebSockets (#1709) 2018-03-25 18:53:49 +13: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
Andrew Stanton-Nurse a9667c3fbd
issue template (#1701) 2018-03-23 12:29:09 -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
James Newton-King d367bdc9aa
Remove message content from JS client logging (#1694) 2018-03-23 17:24:51 +13:00
BrennanConroy a47e1051e8
Add protocol version to handshake (#1666) 2018-03-22 15:54:35 -07:00
BrennanConroy 6d642ea5ce
Move Typescript client folder (#1692) 2018-03-22 15:47:08 -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
Mikael Mengistu b5c46f35b3
Check for actual start in SSE (#1681) 2018-03-22 19:03:48 +00:00
David Fowler b111c91cb0
Don't copy the array for incoming msgpack reads (#1686)
* Don't copy the array for incoming msgpack reads
- Don't use ToArray on the already sliced msgpack data.
- Turns out msgpack is self describing enough to not require the count, it just needs the buffer and start offset.
2018-03-22 08:47:06 -07:00
James Newton-King 3f84eee116
Detect availability of web sockets on client and server (#1682) 2018-03-22 12:35:31 +13:00
Andrew Stanton-Nurse 71c2ddd155
Fix #1575 by removing use of Map (#1671) 2018-03-21 10:11:18 -07:00
David Fowler 6053a34cf3
Don't expose HubConnectionContext on the Hub (#1674)
- Made HubCallerContext an abstract class
- Made DefaultHubCallerContext that gets data from the HubConnectionContext.
- Removed IP address
- Removed Connection property
2018-03-21 10:07:41 -07:00
BrennanConroy e889175c0e
Properly wait for process exit for docker helper and log errors (#1667) 2018-03-21 09:21:33 -07: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
Andrew Stanton-Nurse a2764109b0
clean up test output (#1656) 2018-03-20 17:23:34 -07:00
BrennanConroy 24f07ce791
Fix LongPolling retry after poll timeout (#1654) 2018-03-20 14:51:00 -07:00