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
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
BrennanConroy
5ce672dfe6
ThreadStatic MemoryBufferWriter ( #1821 )
2018-04-02 11:25:04 -07: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
BrennanConroy
903a9ea6a0
Use IBufferWriter in IHubProtocol ( #1791 )
2018-03-30 17:30:08 -07:00
Andrew Stanton-Nurse
6b3a27e73c
Bedrock Renames ( #1777 )
2018-03-30 15:09:19 -07:00
Mikael Mengistu
313133131f
Check for Websockets in Fallback functional tests ( #1772 )
2018-03-30 12:33:42 -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
46f27cdd0b
Fix internal HubConnection state when handshake fails ( #1774 )
2018-03-29 16:35:31 -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
7f86b92f7e
Handshake and negotiation optimization ( #1731 )
2018-03-29 17:50:45 +13: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
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
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
David Fowler
7a9160f3e0
React to https://github.com/aspnet/KestrelHttpServer/pull/2428 ( #1734 )
2018-03-27 02:02:29 -07:00
James Newton-King
79b51ad642
Added logging of .NET client HTTP requests ( #1723 )
2018-03-27 12:57:13 +13: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
Mikael Mengistu
b5c46f35b3
Check for actual start in SSE ( #1681 )
2018-03-22 19:03:48 +00:00
James Newton-King
4f10560087
Rename negotiate to handshake, add handshake response, add close frame ( #1591 )
2018-03-20 17:40:22 +13:00
David Fowler
b792fcb4ef
Reduce the per message read allocations ( #1635 )
...
- Introduced Utf8BufferTextReader that writes buffers directly into
the char[] allocated by JSON.NET when reading via the JsonReader.
- Use IArrayPool implementation over ArrayPool<char> when reading
incomming messages.
- Replaced JToken parsing with manual parsing using JsonTextReader.
- Added tests for parsing incoming JSON messages with out of order
properties.
- Make access to message headers lazy
- Changed IHubProtocol.TryParseMessage to be ReadOnlyMemory<byte> instead of ReadOnlySpan<byte>
2018-03-18 15:16:03 -07:00
David Fowler
dc0567690d
Use features from Protocol.Abstractions ( #1594 )
...
- This is part of the grand unification of the connection layer between SignalR and Kestrel
2018-03-14 08:17:07 -07:00
BrennanConroy
62956530ae
Rename StreamAsync to StreamAsChannelAsync ( #1587 )
2018-03-13 15:04:11 -07:00
Andrew Stanton-Nurse
fb6121399c
Remove support for binary over SSE and add transfer format to negotiation ( #1564 )
2018-03-13 14:29:32 -07:00
James Newton-King
d816c6ef60
Add additional properties to HttpOptions ( #1557 )
2018-03-13 09:46:34 +13:00
Pavel Krymets
4a4efe0f39
Update to new corefx ( #1561 )
2018-03-08 14:23:20 -08:00
Mikael Mengistu
adbd964efd
Transport Fallback ( #1455 )
2018-03-08 06:49:03 +00:00
James Newton-King
a41bf6228f
Client sends user agent with version based on assembly version ( #1551 )
2018-03-08 10:25:12 +13:00
Pavel Krymets
8908eec6e7
Pipelines in corefx ( #1501 )
2018-02-28 12:42:01 -08:00
David Fowler
c8d4cf689f
Tackling some low hanging performance fruit ( #1470 )
...
* Tackling some low hanging performance fruit
- Use native Memory/Span APIs on Stream and WebSocket in .NET Core 2.1
- Remove double copying in formatters
- Implemented custom HttpContent over ReadOnlyBuffer<byte>
2018-02-20 13:50:31 -08:00
BrennanConroy
3acd29ec6f
Revert "Fix flaky SSE test ( #1279 )"
...
This reverts commit 6fcf554c23 .
2018-02-16 19:01:54 -08:00
BrennanConroy
6fcf554c23
Fix flaky SSE test ( #1279 )
2018-02-15 09:56:02 -08:00
David Fowler
6c22f25818
Client pipelines ( #1435 )
...
- Reworked the Client to be based on pipelines instead of Channels
- SendAsync no longer fails if the http request itself fails but the connection is closed as a result.
- Updated tests
- Base64Encoder needed to support multiple messages in the same span of data
2018-02-12 22:27:43 -08:00
David Fowler
75efe025c3
Skipping flaky tests
2018-02-10 22:17:07 -08:00
Andrew Stanton-Nurse
0435b6dc6e
add headers and revamp msgpack tests ( #1382 )
2018-02-07 09:36:29 -08:00
BrennanConroy
5ade419c53
Fix flaky test ( #1397 )
2018-02-01 15:13:40 -08:00
Andrew Stanton-Nurse
b61dc35ee6
fix #1199 by suppressing ODE in received callback ( #1395 )
2018-02-01 15:08:52 -08:00
Pavel Krymets
ac9db5dc7b
React to pipeline changes ( #1365 )
2018-01-29 14:36:03 -08:00
BrennanConroy
a449345436
Clean up logging ( #1308 )
2018-01-22 09:37:53 -08:00
Andrew Stanton-Nurse
144984e599
Split MsgPack into separate assembly ( #1274 )
2018-01-10 14:20:57 -08:00
Pavel Krymets
8a4adf1cb6
React to pipeline changes ( #1250 )
...
React to pipeline changes
2018-01-04 09:56:39 -08:00
Andrew Stanton-Nurse
3bb71255d4
clean up HttpConnectionTests ( #1208 )
2017-12-19 11:12:39 -08:00
Andrew Stanton-Nurse
00a6dc983a
Fix #1170 by removing invocationId from non-blocking calls ( #1218 )
2017-12-19 10:40:58 -08:00
Pawel Kadluczka
66ab939cff
Making HttpConnection restartable (C#) ( #1147 )
...
🎉
2017-12-12 10:08:42 -08:00
Andrew Stanton-Nurse
a8330067c4
Implement #1157 by adding client timeout for C# client ( #1165 )
2017-12-07 14:54:41 -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
e4671392ec
Fix #1140 by plumbing WebSocketOptions up to HttpOptions ( #1174 )
2017-12-02 17:01:53 -08:00
Pawel Kadluczka
0bafb304c2
Adding support for JWT in the C# client
...
Fixes : #1018
(Bonus: also enabling passing headers)
2017-11-21 16:32:56 -08:00
BrennanConroy
93cbf4dbef
Change negotiate to POST ( #1122 )
2017-11-17 15:31:47 -08:00
Pranav K
439f2a7892
Update samples and tests to target netcoreapp2.1
2017-11-16 13:38:46 -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
379160707f
Switching to new base64 APIs ( #1127 )
2017-11-16 09:20:40 -08:00
BrennanConroy
792745ad98
React to CoreFxLab packages ( #998 )
2017-11-13 15:05:35 -08:00
Pawel Kadluczka
ff12b9b20c
Replacing StreamCompletion with StreamInvocation
2017-11-13 10:50:15 -08:00
Mikael Mengistu
1a21fd49b1
Changing the Closed Event to be a Task ( #1080 )
2017-11-09 17:51:13 -08:00
Pawel Kadluczka
06475270ec
Actually throwing exceptions from SendAsync ( #1084 )
...
SendAsync was using InvokeCoreAsync code to send messages. In case of exception InvokeCoreAsync is blocking and returns a task to the user so they can await for the remote call to complete. Any exception thrown is caught and used to fail the task returned to the user. SendAsync does not return a special task to the user so re-using InvokeCore resulted in swallowing exceptions. While SendAsync is fire and forget it actually should throw if the message could not be send and it was not happening.
While adding tests it turned out we did not test cases where Invoke/SendAsync/StreamAsync were invoked before starting the connection and this resulted in a NullReferenceException. I also fixed that.
2017-11-03 13:15:11 -07:00
Nate McMaster
e15a38a14c
Pin package and tool versions to make build more repeatable
2017-11-01 16:40:51 -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
Mikael Mengistu
eec6b4f2f5
Removing Connected event from TestConnection ( #1055 )
2017-10-24 23:23:56 -07:00
Mikael Mengistu
1768a081ba
Updating default pattern( #1046 )
2017-10-23 22:20:31 -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
Mikael Mengistu
72514f3943
Removing the connected event ( #989 )
2017-10-05 11:12:18 -07:00
Pawel Kadluczka
8743723ece
Merge branch 'rel/1.0.0-alpha2' into dev
2017-09-21 23:00:20 -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
David Fowler
24455da8fb
Merge branch 'rel/1.0.0-alpha2' into dev
2017-09-18 20:46:14 -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
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
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
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
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
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
Nate McMaster
9c0dc52d67
Use Directory.Build.props/targets
2017-08-29 10:17:20 -07:00
Nate McMaster
629dd34977
Upgrade to xunit 2.3.0-beta4 ( #754 )
...
Removes unused theory parameters
2017-08-23 10:02:15 -07:00
Pawel Kadluczka
5ad5f36f88
Changing length prefixing to separator for JSON C#
2017-08-18 09:50: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
a0e490e549
Enabling binary protocols over text transports
2017-08-08 12:11:55 -07:00
Pawel Kadluczka
ae815475b8
Support for binary protocols on the server side
2017-07-20 17:46:45 -07:00
Mikael Mengistu
8fc2cd98b6
Add timeout to Event Queue drain ( #619 )
2017-07-19 11:47:47 -07:00
Pawel Kadluczka
0ebd33a25c
Plumbing TransferMode on the client side
2017-07-14 10:45:28 -07:00
Pawel Kadluczka
2854e868ec
Adding tests for SSE transport #413
2017-07-13 09:14:03 -07:00
BrennanConroy
bcefbae00c
Complete logging for Socket.* packages ( #655 )
2017-07-12 16:16:09 -07:00
Pawel Kadluczka
a41ef82f19
Exiting SSE transport receive loop when transport is stopping
...
Fixes : #650
2017-07-10 17:56:24 -07:00
Mikael Mengistu
2597e52e53
Rename HubConnection Extension Methods from Invoke to InvokeAsync ( #637 )
2017-07-05 22:56:03 -07:00