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
BrennanConroy
9589775f3d
Run tests outside of xunit synccontext ( #1427 )
2018-02-10 20:58:27 -08:00
David Fowler
94155b0e89
Use protocol.abstractions primitives instead of socket abstractions ( #1432 )
2018-02-10 18:10:09 -08:00
David Fowler
01f4bf01cc
Disambiguate between protocol abstractions and sockets (this is temporary)
2018-02-10 13:59:46 -08:00
David Fowler
3e568588d2
Revert "Use protocol.abstractions primitives instead of socket abstractions ( #1429 )" ( #1431 )
...
This reverts commit e3f197cef0 .
2018-02-10 11:30:41 -08:00
David Fowler
e3f197cef0
Use protocol.abstractions primitives instead of socket abstractions ( #1429 )
2018-02-10 10:45:07 -08:00
David Fowler
2ed78d5762
Don't expose Channel from HubConnectionContext ( #1428 )
...
- Change HubEndPoint to call WriteAsync
- Fixed assert for protocol reader writer
2018-02-09 22:00:28 -08:00
David Fowler
28439d1441
Initial changes to move to pipelines ( #1424 )
...
- Change the Sockets abstraction from Channel<byte[]> to pipelines.
#615
2018-02-09 17:45:21 -08:00
Andrew Stanton-Nurse
0435b6dc6e
add headers and revamp msgpack tests ( #1382 )
2018-02-07 09:36:29 -08:00
Mikael Mengistu
4f7b8f5cf3
Unskip Tests ( #1410 )
2018-02-06 09:40:57 -08:00
Andrew Stanton-Nurse
a0c47c0c66
Increase ServerFixture startup timeout ( #1409 )
2018-02-06 08:41:16 -08:00
BrennanConroy
5ccc9e3a0e
Remove some test flakiness and add logging ( #1402 )
2018-02-02 15:04:48 -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
Ryan Brandenburg
9e03075f65
Skip Flaky tests
2018-02-01 11:59:36 -08:00
Pavel Krymets
9482b4976e
Merget release/2.1
2018-01-30 09:48:13 -08:00
Mikael Mengistu
e214d5cdfa
Reduce LongPolling timeout to accommodate Cloudflare's timeout ( #1368 )
...
* Reduce LongPolling timeout to accommodate Cloudflare's timeout
2018-01-29 23:55:08 -08:00
Pavel Krymets
ac9db5dc7b
React to pipeline changes ( #1365 )
2018-01-29 14:36:03 -08:00
BrennanConroy
1cc4098d3a
Defensively stop redis container before starting ( #1356 )
2018-01-25 21:15:15 -08:00
BrennanConroy
67c76287ed
Return stream method error to client ( #1331 )
...
* Return correct error to client from failing stream method
2018-01-24 09:08:27 -08:00
Mikael Mengistu
40e906f23a
Expose IHttpConnectionFeature properties ( #1338 )
2018-01-23 18:25:53 -08:00
BrennanConroy
b088eaa91f
Rename JwtBearer to AccessToken in C# Client ( #1333 )
2018-01-22 16:05:51 -08:00
BrennanConroy
a449345436
Clean up logging ( #1308 )
2018-01-22 09:37:53 -08:00
BrennanConroy
d38764a8f0
Rename InvokeAsync to SendAsync on the server ( #1312 )
2018-01-19 11:32:50 -08:00
Josh Williams
0311f9b415
Throw InvalidDataException instead of FormatException in NegotationProtocol ( #1246 )
...
* Throw InvalidDataException instead of FormatException in NegotationProtocol
- Modify NegotiationProtocol to throw InvalidDataException
- Update NegotiationProtocolTests expectations
- Remove test case for InlineData "Missing required property 'protocol'"
- Update JsonHubProtocol & JsonUtils to throw InvalidDataException
- Update corresponding test expectations
- Add back removed test
Addresses #1203
2018-01-11 13:23:30 -08:00
Andrew Stanton-Nurse
144984e599
Split MsgPack into separate assembly ( #1274 )
2018-01-10 14:20:57 -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
e1f9a65083
MultipleClients -> Clients ( #1269 )
2018-01-05 12:07:26 -08:00
Pavel Krymets
8a4adf1cb6
React to pipeline changes ( #1250 )
...
React to pipeline changes
2018-01-04 09:56:39 -08:00
Mikael Mengistu
738617266e
Invoke Multiple Connections ( #1242 )
2017-12-21 15:19:43 -08:00
Mikael Mengistu
ac236efdae
Refactoring HubEndpointTests ( #1231 )
2017-12-19 15:01:49 -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
Mikael Mengistu
c8bd72be36
Others in Group ( #1230 )
2017-12-18 15:27:56 -08:00
Mikael Mengistu
eb2668e74e
AllExcept for Groups - GroupExcept ( #1204 )
2017-12-15 17:34:08 -08:00
Geovanny Alzate Sandoval
31ef3c49df
Makes MapHub and MapEndpoint consistent with other ASP.NET Core APIs using PathString. #1188
2017-12-13 09:14:36 -08:00
Pawel Kadluczka
66ab939cff
Making HttpConnection restartable (C#) ( #1147 )
...
🎉
2017-12-12 10:08:42 -08:00
Mikael Mengistu
75e102f97a
Support for Others and Caller Client Subsets( #1192 )
2017-12-11 17:30:53 -08:00
BrennanConroy
7246e58189
Skip WebSockets on win7 and 2008 ( #1194 )
2017-12-08 10:07:49 -08:00
Andrew Stanton-Nurse
a8330067c4
Implement #1157 by adding client timeout for C# client ( #1165 )
2017-12-07 14:54:41 -08:00
BrennanConroy
15c3bca8e6
Change log names in testing and assembly logs are from ( #1182 )
2017-12-05 17:05:22 -08:00
Andrew Stanton-Nurse
ae9c3cf04d
expand ping test expectations to avoid flakiness ( #1181 )
2017-12-05 10:46:12 -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
Andrew Stanton-Nurse
3005337a9c
fix #625 by implementing HubMethodNameAttribute ( #1173 )
2017-12-01 09:48:26 -08:00
BrennanConroy
531c7cfba1
More micro benchmarks ( #1158 )
...
- Hub Protocol benchmark
- Broadcast benchmark
- Run benchmarks validation during builds
2017-11-28 15:39:58 -08:00
Pawel Kadluczka
4394b57143
JWT C# Sample
2017-11-21 16:32:56 -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
fadd6f89fd
Start Redis first in tests ( #1146 )
2017-11-21 14:03:54 -08:00
BrennanConroy
93cbf4dbef
Change negotiate to POST ( #1122 )
2017-11-17 15:31:47 -08:00
Pawel Kadluczka
046553cfe4
Avoiding serializing to MemoryStream
2017-11-17 15:02:21 -08:00
BrennanConroy
75274c76d5
Give redis docker image time to download ( #1131 )
2017-11-17 10:32:15 -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
3a8f512fa7
Couple more reaction changes for Hosting ( #1126 )
2017-11-15 13:31:17 -08:00
BrennanConroy
34b0445dd8
React to delayed Configure in Hosting ( #1118 )
2017-11-14 14:43:56 -08:00
BrennanConroy
ff43390ed2
[Redis] Add functional test support ( #1051 )
2017-11-14 09:32:14 -08:00
BrennanConroy
792745ad98
React to CoreFxLab packages ( #998 )
2017-11-13 15:05:35 -08:00
BrennanConroy
f21d107766
Use different ports in ServerFixture for testing ( #1112 )
2017-11-13 11:32:38 -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
Pawel Kadluczka
cc42b0eaef
Fixing a bug where cancellation could result in HubException
...
When the client cancels a streaming method the server would send an error completion. This was not correct because cancellation is not an error. We did not see this because our client ignores any messages for a given streaming invocation after sending a CancelInvokationMessage but other clients may want to drain messages before considering a streaming method canceled.
2017-11-01 20:20:43 -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
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
caff492cdc
Removing sending OPTIONS request if WebSocket transport requested ( #1036 )
...
Removing sending OPTIONS request if WebSocket transport requested
This removes session stickiness requirement for WebSockets
Fixes : #1035
2017-10-23 10:28:33 -07:00
Mikael Mengistu
5ffb082acb
Add Missing Await in Test ( #1045 )
2017-10-22 23:37:12 -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
Pawel Kadluczka
8d1d6d0300
Adding StreamCompletion message (C#)
2017-10-19 18:20:03 -07:00
Pawel Kadluczka
a903a74db1
Adding roundtripping test for CancelInvocation message ( #1031 )
...
* Adding roundtripping test for CancelInvocation message
2017-10-18 22:49:15 -07:00
Mikael Mengistu
04d4da2987
Replace Received Event with OnReceived ( #1006 )
2017-10-18 17:10:51 -07:00
BrennanConroy
0e70c7950b
Adding Redis Unit tests ( #1013 )
2017-10-17 15:48:29 -07:00
BrennanConroy
8701baf73d
Add negotiate timeout option to hub options ( #1003 )
2017-10-11 08:59:37 -07:00
BrennanConroy
de2e0967c3
Adding CancelInvocation message ( #979 )
...
* For Streaming only. And C# client only.
2017-10-06 15:55:39 -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
Mikael Mengistu
72514f3943
Removing the connected event ( #989 )
2017-10-05 11:12:18 -07:00
Pawel Kadluczka
7c90e80b3f
Merge branch 'rel/1.0.0-alpha2' into dev
2017-10-02 10:07:16 -07:00
Pawel Kadluczka
70df19c8a2
Fixing MsgPack serializing byte[] as string Part 1
...
Enabling sending byte[] from server to client.
2017-09-29 17:05:24 -07:00
Pawel Kadluczka
05da66ada0
Merge branch 'rel/1.0.0-alpha2' into dev
2017-09-28 17:52:25 -07:00
Pawel Kadluczka
4f4fb174ea
Replacing 8-byte-long length prefix with varint
2017-09-28 17:00:49 -07:00
David Fowler
2adf24d1c6
Merge branch 'rel/1.0.0-alpha2' into dev
2017-09-25 23:44:25 -07:00
David Fowler
9df8d2f795
Remove the params argument from IClientProxy ( #946 )
...
* Remove the params argument from IClientProxy
- This allows passing arrays without having to explicitly ToArray() or AsEnumerable()
- Added overloads up to 10 arguments
- Added tests
2017-09-25 21:01:52 -07:00
David Fowler
000f9cb192
Initial support for websocket subprotocols ( #933 )
...
* Initial support for websocket subprotocols
- Exposes a SubProtocol property on WebSocketOptions that picks the
protocol for all connections on the end point.
- This is required for things like mqtt over websockets (the SubProtocol in
this case is something like mqtt or mqttv3.1)
- Added test
#402
2017-09-25 15:17:45 -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
moozzyk
c0713c9916
Merge branch 'rel/1.0.0-alpha2' into dev
2017-09-25 08:17:27 -07:00
Pawel Kadluczka
0267695656
Exceptions thrown during writing should close the connection
...
We need to close the connection if there is an exception when writing to the transport on the server side. Currently if an exception happens it leaves the connection in an unsable state - after the exception no messages from the server will be sent to the client because the writing loop is terminated. Ignoring the message could cause hangs on the client side since we can fail while writing a completion message. In this case if the client is awaiting the invocation it will hang because the task will never be completed.
2017-09-25 08:13:46 -07:00
David Fowler
65cd41dbf5
Block POST requests for websocket connections ( #934 )
2017-09-23 17:49:19 -07:00
Pawel Kadluczka
8743723ece
Merge branch 'rel/1.0.0-alpha2' into dev
2017-09-21 23:00:20 -07:00
Pawel Kadluczka
4db78685dc
camelCasing objects serialized by JsonHubProtocol
...
Fixes : #859
2017-09-21 22:58:59 -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
Pawel Kadluczka
dd07ab1735
Merge branch 'rel/1.0.0-alpha2' into dev
2017-09-20 15:31:56 -07:00
FTWinston
a7fb243501
Added typed HubContext
2017-09-19 16:16:31 -07:00