Commit Graph

318 Commits

Author SHA1 Message Date
Pawel Kadluczka 913354f688 Unifying errors in parsers 2017-03-20 10:32:06 -07:00
moozzyk 33c94c1a47 Replacing onError with onClosed
Unifying errors in transports
2017-03-20 10:32:06 -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
David Fowler 01a10c3505 Downgrade corefxlab 2017-03-18 00:57:56 -07:00
Pawel Kadluczka 84e9f672f6 .gitignoring global.json 2017-03-17 15:01:46 -07:00
Pawel Kadluczka 61ebf10ea9 Update README.md (#315) 2017-03-17 11:12:53 -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 0911f9023b add additional test for 0-byte sends (#308)
fixes #150
2017-03-16 11:54: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 4a8a28ec16 React to aspnet/Testing#259 2017-03-16 09:59:12 -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 cd246adb6f Update spec for behavior on poll reconnect (#305) 2017-03-15 18:03:12 -07:00
Andrew Stanton-Nurse 77e763a516 port aspnet/WebSockets#149 (#301) 2017-03-15 15:45:06 -07:00
Andrew Stanton-Nurse d48663da2a autobahn + appveyor = sadness (#302) 2017-03-15 10:46:25 -07:00
moozzyk 96aac19044 Creating TypeScript Client npm module during build 2017-03-14 15:26:53 -07:00
Nate McMaster 24ce511044
Update appveyor and travis settings 2017-03-14 13:41:38 -07:00
Nate McMaster 209e2c8e23
React to aspnet/DotNetTools#272 2017-03-14 12:51:33 -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
Andrew Stanton-Nurse 577b765a8a Update TransportProtocols.md (#295) 2017-03-14 09:57:19 -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 4bacbfeb05 Enabling Debug logging in a flaky test 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
Pawel Kadluczka b3ba381fbd Setting node version on travis and appveyor (#281) 2017-03-10 10:34:54 -08:00
moozzyk 7bae4e994a Running TS client Node tests as part of build
Bonus: make sure build does not try to restore npm modules twice
2017-03-10 09:05:23 -08:00
Pawel Kadluczka a2d088bc3c Increasing the timeout of host start (#279)
* Increasing the timeout of host start

* Increasing log level
2017-03-09 16:58:46 -08:00
Andrew Stanton-Nurse 9f0edefd16 fix #273 by grouping websocket tests (#278) 2017-03-09 14:28:24 -08:00
David Fowler 0dd7477501 Update .travis.yml (#277) 2017-03-09 11:36:31 -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
moozzyk aca34cb4a1 Merge branch 'pawelka/FIN' into dev 2017-03-07 14:57:07 -08:00
Pawel Kadluczka 2be05e24c8 Removing [Fin]
[Fin] was removed because we decided not to allow multi-frame messages in Long-Polling/Server-Sent Events.
2017-03-07 14:56:10 -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 080494fc78 Fix TaskCache type collision 2017-03-05 09:09:54 -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
Nate McMaster bdbb862abd Update AppVeyor and Travis settings 2017-03-01 18:25:43 -08:00
Nate McMaster efbf9f21e8 Change korebuild branch and fix argument forwarding in bootstrapper 2017-03-01 18:14:14 -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
Nate McMaster ef6cd8d204 Switch dotnet-bundle to BuildBundlerMinifier (#259) 2017-03-01 13:21:53 -08:00