Commit Graph

208 Commits

Author SHA1 Message Date
David Fowler 8da2dddd49 Fix issue where multiple calls to dispose don't wait properly (#360)
* Fix issue where multiple calls to dispose don't wait properly
- DisposeAsync returned immediately to anyone but the first caller.
This means that it was possible to end the request before properly
waiting on the transport task which means writing after dispose was possible.
- Added a test
2017-04-03 15:25:45 -07:00
Alexis Nowikowski 3d29b7854b Bugfix issue #355: Don't handle Invocation when no InvocationHandler … (#356)
- Don't handle Invocation when no InvocationHandler is present
2017-03-31 09:44:57 -07:00
BrennanConroy 09667e86ab Port ObjectMethodExecutor race fix 2017-03-27 09:19:08 -07:00
BrennanConroy 6130003193 Convert to netcoreapp2.0 (#338)
* Converted samples and test projects to run on netcoreapp2.0
2017-03-25 09:37:39 -07:00
BrennanConroy 14d3f2bc9b Allow overridden methods on hubs (#334)
Allow overridden methods on hubs
2017-03-23 14:38:31 -07:00
Andrew Stanton-Nurse 28bf0b445b add some very simple, fairly stupid, benchmarks (#322) 2017-03-23 09:18:49 -07:00
Pawel Kadluczka e955c4b9aa Handling exceptions thrown when invoking a hub method (#332) 2017-03-22 11:06:47 -07:00
BrennanConroy 8f9f6bcb6f Adding Auth to endpoints 2017-03-21 10:13:56 -07:00
David Fowler 10782d59a2 Dev gate (#326)
* React to corefxlab
2017-03-21 08:48:32 -07:00
David Fowler 63ce7f6160 Supported transports (#294)
Supported transport spike
- Allow turning transports on or off per end point with a flags enum
- Added `TransportType` to Sockets.Common
- Added tests
2017-03-20 12:23:00 -07:00
Andrew Stanton-Nurse ab3dce85fc tidy up status codes and transport conflicts (#306) 2017-03-20 09:48:15 -07:00
David Fowler 6a0641f716 Try latest corefx packages (#319)
* Revert "Downgrade packages to fix build"
2017-03-18 23:24:48 -07:00
David Fowler 49baaba32c Downgrade packages to fix build 2017-03-18 02:11:49 -07:00
moozzyk 23375c911b Fixes a race where wrong task could be awaited in channel completion
We had a startTask we would await in DisposeAsync and channel completion continuation. This task would be initially set to a completed task and then once StartAsync was invoked it would be replaced with the actual task representing StartAsyncInternal. However if a transport failed immediately after starting the channel completion continuation could have been called before the StartAsyncInternal method completed. In this case we would await the inital completed task and then very likely would fail trying to await _receiveLoop task because it wouldn't necessarily be set.
The fix is to use TaskCompletionSource so we don't try to swap tasks. We need to do some additional state checks because:
- the TaskCompletionSource task may never be completed (e.g. DisposeAsync is being called without starting the connection)
- TaskCompletionSource allows setting the result only once and we should not return its task more than once (e.g. calling StartAsync after connection was successfully started and stopped)

Fixes #304
2017-03-16 13:45:18 -07:00
moozzyk 1d9da9bff8 Moving XUnitLoggerProvider to Common location 2017-03-16 13:45:18 -07:00
Andrew Stanton-Nurse 1732ac5760 add support for binary format in /poll (#303) 2017-03-16 11:06:26 -07:00
Nate McMaster c89ba8c1ec Consolidate dependency versions to one file 2017-03-15 19:34:12 -07:00
Andrew Stanton-Nurse 0133153bc9 use new protocol for '/send' (#297) 2017-03-15 18:03:23 -07:00
Andrew Stanton-Nurse fcbb43cc03 use new CoreFxLab buffer read/write primitives (#276)
* converted formatters to use IOutput
* convert parsers to use BytesReader
2017-03-14 10:28:54 -07:00
moozzyk 2f2d3a6f24 Fixing Receive/Close race
Fixing a race where removing the last message from the channel would trigger draining the event queue (in channel Completion continuation) which would prevent from raising the Received event for the very message that was read from the channel.
2017-03-14 08:49:57 -07:00
moozzyk e8ad3b4160 Adding detailed logging to the client 2017-03-14 08:49:57 -07:00
moozzyk dcdd8cfa9a Removing our own copy of NullLoggerFactory
Moving TaskQueue to the Internal folder as it is in the Internal namespace
2017-03-10 15:54:29 -08:00
moozzyk c0120dd18f Fixing build after moving to new pipelines 2017-03-09 11:13:05 -08:00
Pawel Kadluczka a00ec445ef Moving TS client to a dedicated subfolder (#274) 2017-03-09 09:42:59 -08:00
moozzyk 02df601715 Dispatching raising events to separate threads 2017-03-09 09:09:19 -08:00
moozzyk a93839e1b2 Adding TaskQueue 2017-03-08 17:30:54 -08:00
moozzyk abc9109cf3 Enabling feedback to SendAsync via asymmetric channels 2017-03-08 17:13:36 -08:00
moozzyk 62c3c15a1f Fixing a race DisposeAsync is called when StartAsync hasn't finished
Fixes: #248
2017-03-08 17:04:18 -08:00
Mikael Mengistu f374d92712 WebSockets transport now creates correct url (#268) 2017-03-07 11:03:41 -08:00
Andrew Stanton-Nurse 78dfd278c1 Integrating new transport protocols (#257) 2017-03-07 10:46:36 -08:00
Pranav K 92bedafe3a Revert "Workaround rogue System.IO.Pipelines on nuget.org"
This reverts commit 544a09dc83.
2017-03-05 08:55:36 -08:00
David Fowler 544a09dc83 Workaround rogue System.IO.Pipelines on nuget.org 2017-03-03 22:53:15 -08:00
Pawel Kadluczka 0162c19ccf MSBuildifying gulpified node (#237)
- Creating an MSBuild project for the TS client
- Adding project references to the TS client project from projects that need the client - (ensures the correct targets dependency graph and prevents building the client multiple times and related races)
- Removing gulp tasks from individual projects (allows containing npm only in the TS client source and node tests)
- Using incremental compilation to build the TS client only when inputs change (prevents building the client multiple times or when not needed at all)
- Removing `npm install` from all the projects (takes up to 10 seconds even if there is nothing to restore) - npm packages will still be installed when running full build (if needed) or need to be installed manually
2017-03-01 15:13:22 -08:00
BrennanConroy 485f9595e2 EndPoint options and injection 2017-03-01 14:38:50 -08:00
Mikael Mengistu c3b33a2676 Add Url + ILoggerFactory ctor for HubConnection (#253) 2017-02-28 16:52:42 -08:00
BrennanConroy 0abac4a20d Fix null ref in DisposeAsync on ConnectionState 2017-02-28 11:44:25 -08:00
Mikael Mengistu c1a4b25a66 Remove logger factory requirement from HubConnection (#238) 2017-02-28 10:48:45 -08:00
Nate McMaster af5e7da478 Remove workarounds and unify dependency versions 2017-02-23 17:09:07 -08:00
Andrew Stanton-Nurse 08c550655a use new Base64 codec in Text and SSE Formatters (#231)
fix #192
2017-02-22 16:26:58 -08:00
Andrew Stanton-Nurse 9767dbd5c1 fix #209 by converting to byte[] (#229)
* fix #209 by converting to byte[]
2017-02-22 11:50:37 -08:00
Andrew Stanton-Nurse 701612c859 fix #204 by implementing SSE formatter (#210) 2017-02-22 09:30:31 -08:00
Andrew Stanton-Nurse f84362cc76 one last try to get this test de-flaked (#227) 2017-02-21 16:15:32 -08:00
Andrew Stanton-Nurse 755ba7613e Fix #215 and restore tests (#218)
* fix #215 by properly handling pipe closure

* pr feedback

* pr feedback
2017-02-21 15:27:52 -08:00
moozzyk 9709139a27 Fixing a bug where pending invocations were not terminated correctly 2017-02-21 14:07:51 -08:00
moozzyk 12c6a4b917 Adding IConnection interface 2017-02-21 14:07:50 -08:00
moozzyk 7a4746868a Removing Dispose from Transport, Connection and HubConnection
Converting StopAsync to DisposeAsync
2017-02-21 13:36:54 -08:00
moozzyk cc7f835e1d Creating npm package for ts client 2017-02-21 11:37:13 -08:00
David Fowler a0dae7cb0e Revert "Revert "React to CoreFxLab changes (#225)""
This reverts commit f9529f00b9.
2017-02-20 00:40:02 -08:00
David Fowler f9529f00b9 Revert "React to CoreFxLab changes (#225)"
This reverts commit 28455f647e.
2017-02-20 00:31:06 -08:00
Pranav K 28455f647e React to CoreFxLab changes (#225) 2017-02-19 23:41:19 -08:00