Commit Graph

165 Commits

Author SHA1 Message Date
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 13757936ad Adding roundtripping test for GUID property 2017-11-02 09:35:39 -07:00
Nate McMaster e15a38a14c Pin package and tool versions to make build more repeatable 2017-11-01 16:40:51 -07:00
moozzyk 1d2e0fedb0 Enabling byte[] 2017-11-01 15:50:18 -07:00
Pawel Kadluczka 4d6383727a Updating jasmine
Needed for typed array verification
2017-11-01 15:50:18 -07:00
moozzyk 52862b23d7 Updating msgpack5 to the latest version 2017-11-01 15:50:18 -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
Pawel Kadluczka 6bddb258cd Adding StreamCompletion message (TS) 2017-10-19 18:20:03 -07:00
Pawel Kadluczka 236aa63467 Don't build TS client needlessly (#1034) 2017-10-18 22:49:44 -07:00
RoBackman a709158e8a Summary of changes\n\t- Improved logging to browser console\n\nAddresses #802 2017-10-16 10:29:17 -07:00
BrennanConroy de535422d7 Optional error and complete functions for observables (#1000) 2017-10-10 16:42:50 -07:00
Pawel Kadluczka ba1c210f03 Fixing JS end-to-end tests 2017-10-04 12:04:08 -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 602ca479b8 Checking if window.document defined before trying to resolve url 2017-09-28 17:01:34 -07:00
Pawel Kadluczka 4f4fb174ea Replacing 8-byte-long length prefix with varint 2017-09-28 17:00:49 -07:00
Pawel Kadluczka 1686878035 Adding JS tests that send and receive structural objects 2017-09-22 17:13:21 -07:00
moozzyk 9ecb6d1d58 Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-21 08:31:53 -07:00
Pawel Kadluczka 20d4d70cc7 lowercasing event names 2017-09-20 18:19:02 -07:00
Pawel Kadluczka 5ca089e33e Enabling multiple callbacks for HubConnection.onClose
Fixes: #842
2017-09-20 17:09:02 -07:00
Pawel Kadluczka 80bf695181 Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-19 11:37:03 -07:00
Pawel Kadluczka bee9fcb0d8 Adding support for multiple callbacks per client side method
...and a possibility to remove callbacks

Fixes: #807
2017-09-19 11:13:22 -07:00
Pawel Kadluczka ad54c08519 Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-18 10:48:53 -07:00
Pawel Kadluczka 20b07a0dff Adding README to npm module 2017-09-18 10:08:52 -07:00
Pawel Kadluczka c6c08e142e Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-18 10:03:35 -07:00
Pawel Kadluczka 982ac32fea Prepending relative urls with '/' 2017-09-15 15:12:36 -07:00
Pawel Kadluczka b40578b89b Moving versions to alpha2 2017-09-15 12:11:53 -07:00
Pawel Kadluczka a267e86e1f Adding the 'final' suffix to version 2017-09-14 09:49:06 -07:00
Pawel Kadluczka 72568acff0 Appending version to browser javascript file names 2017-09-13 09:17:13 -07:00
BrennanConroy 30f16fcf4b Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-12 13:45:56 -07:00
BrennanConroy 2d4b2239a9 Reduce C# client logging and add HubProtocol log (#857) 2017-09-12 13:45:11 -07:00
Pawel Kadluczka 0557319870 Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-11 21:31:02 -07:00
Pawel Kadluczka abd669849d Making MsgPack work in IE10 2017-09-11 21:14:15 -07:00
Pawel Kadluczka 54c71c4c10 Replacing Cache-Control header with nonce
Makes long polling work on IE10 and IE9
2017-09-11 21:12:18 -07:00
Pawel Kadluczka 67b2b27ac9 Enabling passing relative Url when creating connections 2017-09-11 21:07:47 -07:00
Pawel Kadluczka bb79a9760c Enabling creating HubConnection without HttpConnection 2017-09-11 21:07:47 -07:00
Pawel Kadluczka 8ff6a4b624 Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-07 09:52:28 -07:00
Pawel Kadluczka b4c61b6c2d Client side method names should be case insensitive 2017-09-07 09:50:13 -07:00
Pawel Kadluczka 2cc72d72cd Logging traffic at Trace level 2017-09-06 11:56:38 -07:00
Nate McMaster d3ae3abe2a Use PackageLineup to manage PackageReference versions 2017-09-01 16:34:32 -07:00
Mikael Mengistu cd10d7e122 Fixing csproj 2017-08-31 16:22:36 -07:00
Pawel Kadluczka 29ad3d1dd6 Adding third-party-notices.txt for msgpack5 2017-08-31 15:34:11 -07:00
Pawel Kadluczka f31e5ad42a Updating signalr-client module version 2017-08-31 14:01:25 -07:00
Mikael Mengistu 7dcbf25069 Headers for TS files (#798) 2017-08-31 11:33:14 -07:00
Pawel Kadluczka 521eed1438 Renaming Microsoft.AspNetCore.SignalR.Http to Microsoft.AspNetCore.SignalR 2017-08-31 10:10:02 -07:00
Pawel Kadluczka 7db480b23e Changing the way users can enable logging 2017-08-30 17:26:05 -07:00
Nate McMaster 9c0dc52d67 Use Directory.Build.props/targets 2017-08-29 10:17:20 -07:00
Pawel Kadluczka 66876aa2f8 Making test and samples IE/ES5 aware 2017-08-29 09:26:53 -07:00
Pawel Kadluczka 2a36aa141d Making the client and tests work on IE 2017-08-28 17:06:25 -07:00
Pawel Kadluczka ff2bf5ad75 Creating ES5 version of the TS client 2017-08-28 17:06:24 -07:00
Mikael Mengistu c0d47adb11 Allow spaces in path (#779) 2017-08-28 15:29:33 -07:00
Mikael Mengistu 6907261453 Unset the UserAgent Header in the TS client (#781) 2017-08-28 14:18:08 -07:00
Mikael Mengistu b60e598277 Setting the User-Agent header (#759) 2017-08-27 16:35:28 -07:00
Pawel Kadluczka ccc97c67ab Making msgpack5 a prod dependency
Fixes: #764
2017-08-25 16:43:13 -07:00
Pawel Kadluczka 83f3605cfb Minification - part 1 (#762)
* Minification - part 1

Creating a minified version of javascript signalr client
2017-08-25 12:27:35 -07:00
Pawel Kadluczka bcd5a1bd6e Filtering out SSE tests for browsers with no EventSource 2017-08-24 15:33:24 -07:00
Pawel Kadluczka cddc5f8a75 Adapting TS-client to work with non-level-2 xhr 2017-08-24 11:10:24 -07:00
Pawel Kadluczka bc980c45bb Updating samples 2017-08-23 16:11:47 -07:00
Pawel Kadluczka e4c1b888ca Adding loggers to TS client 2017-08-23 16:11:47 -07:00
Pawel Kadluczka cdbb13de66 Putting signalr-client in @aspnet scope 2017-08-23 09:05:41 -07:00
Pawel Kadluczka 79d8a9d3d2 Changing module type to commonjs 2017-08-21 14:28:56 -07:00
Pawel Kadluczka e349329dc7 Changing length prefixing to separator for JSON TS 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 4898c0d3df Integrating MsgPack support in TS client 2017-08-11 11:44:52 -07:00
Pawel Kadluczka e2cec0b305 Adding MsgPack hub protocol to TS client 2017-08-09 09:12:11 -07:00
Pranav K cd5d4fbdaf Merge branch 'rel/2.0.0' into dev 2017-07-11 21:04:38 -07:00
Pranav K 91eb97c432 Revert "Check for the existence of a git repository before invoking git commands"
This reverts commit 6c39e227b8.
2017-07-11 21:04:29 -07:00
Pranav K 6c39e227b8 Check for the existence of a git repository before invoking git commands 2017-07-11 21:03:41 -07:00
Pranav K fcda85727a Check for the existence of a git repository before invoking git commands 2017-07-11 20:51:03 -07:00
Pawel Kadluczka 86756d11dd Moving typings to the TS client folder 2017-07-11 16:39:30 -07:00
Mikael Mengistu ed6badbabe Set X-Requested-With header and add HttpError (#623) 2017-07-05 16:02:04 -07:00
David Fowler d6f5e16f38 Support non blocking send on client (#603)
* Added support for non blocking sends on HubConnection
- Renamed Invoke to InvokeAsync
- Add support for non blocking send to TS client
- Add tests to make sure that non blocking sends don't send responses
2017-06-28 21:00:13 -07:00
Pawel Kadluczka 59e032dbcb Adding negotiation to TS client 2017-06-27 18:55:18 -07:00
BrennanConroy 0f264e18e9 Fix TS Client tests (#586) 2017-06-24 08:39:07 -07:00
David Fowler a84ba8820f Use Channel<byte[]> as the abstraction (#579)
* Use Channel<byte[]> as the abstraction
2017-06-23 09:52:35 -07:00
David Fowler 41f54d001b Remove dependencies on a bunch of corefxlab things (#576)
* Remove dependencies on a bunch of corefxlab things
- Used Stream instead of IOutput
- Removed pipelines dependency in most places.
2017-06-22 09:23:52 -07:00
David Fowler d169b96d2d Decouple IConnection.ts and HubConnection.ts from http (#566)
* Decouple IConnection.ts and HubConnection.ts from http
- Removed TransportType from start
- Renamed Connection.ts to HttpConnection.ts
2017-06-16 06:54:55 +02:00
David Fowler dbb438dc08 Remove content type from LongPollingTransport 2017-06-15 07:33:05 +02:00
Nate McMaster 05dd8c7386 Add the npm 5 lockfile to source 2017-06-08 09:47:17 -07:00
David Fowler 523517f60c Add support for timing out poll requests (#538)
* Add support for timing out poll requests
- Default poll request is 110 seconds (like in previous versions of SignalR)
- Use 200 with a 0 content length for timeouts.
- Added support for not timing out while debugging
2017-06-07 20:55:00 -10:00
David Fowler 50f1d8f9fe Added IHubProtocol to ts client (#537)
- Mimics the .NET client structure wise
- Also adds a JsonHubProtocol implementation
2017-06-07 05:46:27 -10:00
Pawel Kadluczka a14a0ab039 Adding structured negotiate 2017-06-06 15:53:21 -07:00
Pawel Kadluczka 028bd68bf5 Removing unneeded queryString from TS client 2017-06-06 14:02:01 -07:00
David Fowler 59a8f5f3b5 Simplify the JSON and protobuf protocols (#524)
- Remove message type and message format
- Updated tests
2017-06-06 07:18:23 -10:00
David Fowler 38efde7b50 Merge transport and hub protocols (#517)
* Merge transport and hub protocols
- This change merges the transport and hub protocols into a single protocol. The
idea being that sockets in a purely streaming layer that sends frames from the underlying
transport. This makes things like TCP possible and doesn't impose a framing layer at the lowest
level. This will make it possible to build servers like kestrel on top of the TCP layer.
- The Message was removed from the lowest layer of the stack and pushed into the hubs layer. Hub invocations
are framed with what was before the transport protocol. Connections also need to state upfront if they support
binary or not. This will determine how data will be serialized to the specific connection.
- Changed the SSE parser and writer to be strictly SSE without any of the transport protocol specific
information.
- To ensure we aren't using types in the wrong layers
- Moved protocol logic into SignalR
- Socket.Abstractions is now the root of the universe, Sockets.Common will likely be removed
or turned into Sockets.Common.Http.
- Move SSE parser to Sockets.Client and SSE writer into Sockets.Http
- Moved tests into the appropriate test projects
- Updated the spec
2017-06-05 09:45:40 -10:00
Pawel Kadluczka e31fc1e57d Closing transports with error if hubs cannot be created
- Preventing from closing long polling transport with 204 in case of
error
- Reporting an error to the client if WebSocket was not closed normally

Note in case of ServerSentEvents it is not possible on the client to
tell the difference between when the server closed event stream due to
an exception or because the client left OnConnectedAsync. In both cases
the client sees only that the stream was closed.

Part of: #163
2017-05-31 16:29:28 -07:00
Andrew Stanton-Nurse 263dd0e4fe Fix #324 by adding streaming support to the server (#461) 2017-05-31 09:10:20 -07:00
Mikael Mengistu b862d35b10 Update Targets (#486) 2017-05-26 20:00:12 -04:00
BrennanConroy a322fea940 Add data received logs to SSE and LongPolling in TS client (#484) 2017-05-24 08:49:59 -07:00
David Fowler d55ebfeee0 Split http and non-http layers (#487)
* Split http and non-http layers
- This change introduces Microsoft.AspNetCore.SignalR.Http
and Microsoft.AspNetCore.Sockets.Http which expose extension methods
on IAppBuilder for wiring up a sockets and signalr pipeline.
2017-05-24 07:09:46 -07:00
David Fowler 9d9a52119e Progress towards splitting the layers (#473)
* Progress towards splitting the layers
- This is based on the work anurse did in anurse/endpoint-middleware-spike to
introduce a connection middleware pipeline that mimics much of our http
pipeline. The intent is that this layer will be generic enough to build both
SignalR and Kestrel on top of but we're not there yet. This change makes incremental
progress towards splitting apart sockets and http so that we can add the tcp transport
without breaking everything all at once.
- Created Microsoft.AspNetCore.Sockets.Abstractions where the primitives for
sockets live. That includes, ConnectionContext (formerly Connection), EndPoint,
ISocketBuilder, SocketDelegate, etc.
- ConnectionContext isn't in it's final form as yet, it still very closely mirrors
the original Connection object we had so that tests continue to pass.
- The HttpConnectionDispatcher doesn't know about EndPoint anymore, it just cares
about invoking the SocketDelegate.
- EndPointOptions has been removed as part of this change as it coupled http specific configuration
to the end point type. There's a new HttpSocketOptions that needs to be passed into MapSocket calls.
- Updated the tests to deal with the API changes.
2017-05-23 02:43:32 -07:00
David Fowler 2aabce48b4 Remove custom routing and path matching from HttpConnectionDispatcher (#471)
- We're now using the routing system in a very vanilla way now that
we're not using the URL space as part of the protocol.
- Removed the path argument from the HttpConnectionDispatcher (simplifies code and removes duplication from tests)
2017-05-20 00:34:29 -07:00
David Fowler 240a88f7af Make the http end points more resty (#470)
- Use HTTP verbs to describe functionality for endpoints
- Updated TransportProtocols.md
2017-05-19 23:37:17 -07:00
Andrew Stanton-Nurse 991c1d8517 Implement new Hub Protocol (Part Deux) (#390)
* convert to new protocol
* removed InvocationDescriptorRegistry because we're not yet sure about custom protocols
* update SocialWeather sample
* Moving ts client to using new protocol
* make the functional tests a little easier to run on ctrl-f5
2017-05-09 12:24:58 -07:00
Andrew Stanton-Nurse ca9a44afc3 Merge branch 'rel/2.0.0-preview1' into dev 2017-05-04 14:11:16 -07:00
Mikael Mengistu 7f64811ccd Change targets (#437)
Target netcoreapp2.0
2017-05-04 14:05:58 -07:00
BrennanConroy e96096e760 Merge branch 'rel/2.0.0-preview1' into dev 2017-05-03 10:39:46 -07:00
BrennanConroy 0a3c7001d4 React to Logging API changes (#433) 2017-05-03 10:39:29 -07:00
moozzyk 39b2990b62 Preserving user's queryString
Fixes: #272
2017-04-27 09:50:14 -07:00