Commit Graph

444 Commits

Author SHA1 Message Date
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
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
David Fowler 2efbd6a95a Merge branch 'rel/1.0.0-alpha2' into dev 2017-09-18 14:14:23 -07:00
David Fowler a93e4be82f Added Cancellation support (#897)
* Added Cancellation support
- Added ConnectionAbortedToken to the HubConnectionContext. This allows
arbitrary code to access a handle that represents the connection lifetime
without handling OnDisconnectedAsync on the hub itself.
- Expose Abort on HubConnectionContext to allow server side methods to
abort the connection.
- Use the Abort to stop the main loop when unexpected invocation errors happen.
- Use the connection aborted token as unsubscribe from the IObservable and to complete
the IAsyncEnumerator for streaming results.
2017-09-18 12:47:38 -07:00
Mikael Mengistu e42f6980b6 Add Hub<T> Functional Tests (#891) 2017-09-15 13:59:44 -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 5d7b706c4d Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-13 09:15:08 -07:00
Pawel Kadluczka 1453f419a8 MessagePack Serialization fixes
* serializing user objects as maps (#863)
* enabling serializing objects that potentially cannot be deserialized (#862)
2017-09-13 08:50:04 -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
BrennanConroy ef4da90c91 Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-11 16:55:57 -07:00
BrennanConroy 393ab6a4f0 Add extension method to get HttpContext on HubConnectionContext (#849) 2017-09-11 16:55:32 -07:00
LivioF fea0db3814 Renamed private fields according to coding guidelinesù 2017-09-11 10:33:00 -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 8ff6a4b624 Merge branch 'rel/1.0.0-alpha1' into dev 2017-09-07 09:52:28 -07:00
Pawel Kadluczka 9e614b6cc7 Initializing HubOptions.JsonSerializationSettings to default settings 2017-09-07 09:51:20 -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
BrennanConroy 7418785a5e Fix WebSocket race in E2E test (#809) 2017-08-31 15:30:55 -07:00
Mikael Mengistu 8ec2848646 AllExcept for Dynamic and Typed Hubs (#796) 2017-08-31 15:30:19 -07:00
Nate McMaster 5b767e05b4 Lift local function to class function to workaround issue in xunit.analyzers and roslyn 2017-08-31 13:42:44 -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
Pawel Kadluczka 521eed1438 Renaming Microsoft.AspNetCore.SignalR.Http to Microsoft.AspNetCore.SignalR 2017-08-31 10:10:02 -07:00
Nate McMaster 9c0dc52d67 Use Directory.Build.props/targets 2017-08-29 10:17:20 -07:00
BrennanConroy b8a936f2c1 Use IApplicationLifetime instead of IHostedService (#757) 2017-08-24 00:10:18 -07:00
BrennanConroy 978f5cebc0 Starting HubOptions (#743)
* Added JsonSerializerSettings
2017-08-23 15:30:08 -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
Mikael Mengistu d469cc3151 Clients Subset - AllExcept (#700) 2017-08-22 17:33:27 -07:00
BrennanConroy 5c6fb642a0 Fix flaky WebSocket test (#745) 2017-08-22 10:48:30 -07:00
BrennanConroy 345190e6a9 Add timeout to Negotiate (#736) 2017-08-18 15:51:01 -07:00
BrennanConroy a4053acd06 Give Client a chance to receive Close Frame from Server (#730) 2017-08-18 09:56:40 -07:00
Pawel Kadluczka 5ad5f36f88 Changing length prefixing to separator for JSON C# 2017-08-18 09:50:45 -07:00
BrennanConroy b12451025f Exit OnConnected early if Negotiate fails (#733) 2017-08-17 23:34: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 5b4cc95583 Removing unnecessary dependency 2017-08-17 09:30:57 -07:00
Pawel Kadluczka 9eabce1b02 Enabling tests which would have prevented a bug 2017-08-11 11:22:45 -07:00
BrennanConroy e8a673248a Conditional WebSockets testing (#714) 2017-08-11 10:46:50 -07:00
Pawel Kadluczka 29f9c54b86 Updating xUnit version 2017-08-10 19:00:31 -07:00
BrennanConroy b393200fd3 SSE StopAsync should ignore exception (handled elsewhere) (#708) 2017-08-10 14:18:34 -07:00
Mikael Mengistu 8cda36157f Change Read to ReadAsync (#702) 2017-08-09 16:35:44 -07:00
Pawel Kadluczka e2cec0b305 Adding MsgPack hub protocol to TS client 2017-08-09 09:12:11 -07:00
moozzyk e089852d59 Turning messages to arrays
Makes it much easier to parse in JavaScript (also is more MsgPacky)
2017-08-09 09:12:11 -07:00
moozzyk be9fec5d30 Adding result kind to completion message
Before we would rely on error being null to detect whether to read results and we had an additional 'hasResult' field. Now all this information is codified in a field.
2017-08-09 09:12:11 -07:00
Mikael Mengistu 32ef3eb355 Hub<T> (#689) 2017-08-08 17:39:09 -07:00
Pawel Kadluczka 3a1d4c5dd6 Introducing HubProtocolReaderWriter 2017-08-08 12:11:55 -07:00
Pawel Kadluczka ad4784dbd2 Centralizing serializing hub messages 2017-08-08 12:11:55 -07:00
Pawel Kadluczka a0e490e549 Enabling binary protocols over text transports 2017-08-08 12:11:55 -07:00
Pawel Kadluczka f9ee7911a5 Use CloseOutputAsync to close client transport WebSocket (#695)
* Use CloseOutputAsync to close client transport WebSocket

Fixes #568
2017-08-08 11:31:24 -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
Mikael Mengistu 8ba29b578d Dynamic Hub Change Part 2 (#644) 2017-07-14 15:54:31 -07:00
Pawel Kadluczka 0ebd33a25c Plumbing TransferMode on the client side 2017-07-14 10:45:28 -07:00
Pawel Kadluczka 90a6d8fdf7 Shortening log path
CI is failing with PathTooLongException
2017-07-14 08:38:29 -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
Hao Kung 2d16cd2273 React to default auth change 2017-07-07 19:20:20 -07:00
David Fowler 595f783857 Features everywhere (#639)
* Features everywhere
- The goal here is to move things closer to the final design where
ConnectionContext represents a very low level primitive that represents
any connection like transport. As part of that change, we remove unnecessary
properties like User and move those into features. They temporarily live in the same
assembly but they are not required by ConnectionContext.
- Used features for Hubs instead of Metadata
- Metadata is no longer thread safe
2017-07-06 11:27:16 -07:00
Mikael Mengistu 2597e52e53 Rename HubConnection Extension Methods from Invoke to InvokeAsync (#637) 2017-07-05 22:56:03 -07:00
Mikael Mengistu cfaa4b69d7 Dynamic Hub Work Part 1 (#636)
Getting rid of TClient
2017-07-05 22:55:16 -07:00
David Fowler f21f5039b2 Replace ConnectionContext with HubConnectionContext (#629)
* Replace ConnectionContext with HubConnectionContext
- The SocketDelegate implementation owns the transport pipe,
it's a single producer single consumer model. SignalR needs to support
multiple producers so that broadcast, return values and sending to individual
connections works. This change introduces a multi producer channel that is used
by all producers to copy data to the transport safely. This will make the move
to pipelines easier.
2017-07-03 17:44:28 -07:00
David Fowler 0f4295f90e Make parsers stateless (#628)
* Make parsers stateless
- Changed parser input to ReadOnlySpan<byte> to ReadOnlyBuffer<byte>
2017-07-01 23:44:22 -07:00
David Fowler 53e09f8cc3 Fix flaky test (#622)
- Remove timeout and closed the application when the transport closes.
Made some tweaks to TestWebSocketConnectionFeature as a result.
- This uncovered some interesting issues with the WebSocketTransport itself so
further refactoring is needed to make it a bit more solid.
2017-06-30 02:30:09 -07:00
Hao Kung d125a14a39 React to HttpAbstractions 2017-06-29 16:30:38 -07:00
Pranav K 08c04f8912 Fix NuGet downgrade warnings from CoreFxLab packages 2017-06-29 10:31:32 -07:00
Mikael Mengistu d68de2b5ea Make Client Side Event Handlers Async (#610) 2017-06-28 22:39:59 -07:00
David Fowler 6332e98d03 Remove Try from Write methods (#614)
- We write to a Stream so it should never fail (it could throw
but that's not new).
2017-06-28 21:53:23 -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
BrennanConroy dc29e98032 Support Authorize attribute on EndPoints (#606) 2017-06-28 14:52:52 -07:00
Pawel Kadluczka f8d91b54d4 MsgPack end-to-end
Plugging in MsgPack protocol
Adding negotiation message to hub protocol
2017-06-27 18:40:55 -07:00
Pawel Kadluczka 71949129ea Enabling length prefixing, parsing multiple messages 2017-06-27 18:08:32 -07:00
Pawel Kadluczka 3504337918 Adding MsgPack HubProtocol 2017-06-27 17:35:00 -07:00
Mikael Mengistu 13ef35fa79 Changed the handlers to be Func<object[], Task> (#578) 2017-06-27 10:14:58 -07:00
BrennanConroy e36da30072 Ignore failed send after close (WebSockets) (#593) 2017-06-27 10:01:45 -07:00
David Fowler 9602787463 Fix broken SSE transport 2017-06-23 14:27:03 -07:00
BrennanConroy ef273b4796 Add authorization per hub method (#577) 2017-06-23 10:22:05 -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
BrennanConroy 0dd29b3050 Always close websocket on server (#567)
* refactor server websockets transport
2017-06-20 16:00:32 -07:00
BrennanConroy 0298868c00 Reorganize and add more logging to Sockets.Http (#549)
* Move Sockets.Transports to internal namespace
2017-06-15 08:24:43 -07:00
Pawel Kadluczka 6576bb0ea4 Making the build pass after we took new packages 2017-06-14 15:32:20 -07:00
BrennanConroy 3cabb6aeb1 Don't over-discover Hub methods (#511) 2017-06-12 14:26:33 -07:00
BrennanConroy 8277b2cc27 Enable skipped test (#551) 2017-06-12 11:37:11 -07:00
David Fowler 12917ef0e9 Re-layer the .NET Client into Http and non-Http (#544)
* Re-layer the .NET Client into Http and non-Http
- Moved IConnection to Sockets.Abstractions and removed
HttpConnection and TransportType dependency.
- Renamed Sockets.Client to Sockets.Client.Http
- Renamed Sockets.Common to Sockets.Common.Http
- Renamed Connection to HttpConnection
- Removed HTTP dependency from HubConnection
- Removed tests that were testing connection logic in HubConnection

#518
2017-06-09 08:58:54 -10: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
BrennanConroy d1df3671d8 Add Auth Test that was accidentally deleted (#541) 2017-06-07 14:29:59 -07:00
Pavel Krymets c845b07b56 Merge remote-tracking branch 'origin/rel/2.0.0-preview2' into dev 2017-06-07 14:29:28 -07:00
BrennanConroy 1fad901843 Fix inherited hub auth and added tests (#535) 2017-06-06 20:55:34 -10:00
Mikael Mengistu 680c48d584 Change Group Add and Remove API (#522) 2017-06-06 21:50:34 -04:00
Pawel Kadluczka a14a0ab039 Adding structured negotiate 2017-06-06 15:53:21 -07:00
BrennanConroy 4c4be7ed6f Add support for Hub Authorize Attribute (#532) 2017-06-06 15:46:08 -07:00
Ryan Brandenburg 9d584a6358 Skip flaky test 2017-06-06 19:33:46 +00:00
David Fowler 5f6736a82f Removed unused parameter 2017-06-06 10:29:56 -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
David Fowler 831fa72893 Remove the RequestId from DefaultConnectionContext (#516)
* Remove the RequestId from DefaultConnectionContext
- Added a GetHttpContext() extension method on ConnectionContext
- Also fixed an issue not setting LastSeenUtc
2017-06-03 22:05:44 -10:00
David Fowler b77f50a99a Merge DefaultConnectionContext with ConnectionState (#514)
* Merge DefaultConnectionContext with ConnectionState
- Removed ConnectionState as a result
2017-06-03 12:14:01 -10:00
David Fowler 42e2715a95 Removed EndOfMessage from Message (#513)
* Removed EndOfMessage from Message
- The webSockets transport no longer supports partial payloads so
this feature is now gone.
2017-06-03 08:32:28 -10:00
David Fowler 72423ee203 Removed custom websocket implementation (#507)
- Use the default websocket middleware
- Rewrote TestWebSocketConnectionFeature to use Channels instead of pipes
2017-06-03 06:53:39 -10:00
Pavel Krymets 6b32478ec1 Merge remote-tracking branch 'origin/rel/2.0.0-preview2' into dev 2017-06-02 14:00:34 -07:00
Pavel Krymets ce280cba00 React to Logging in DI changes 2017-06-02 13:57:49 -07:00
Kiran Challa 49e0829903 Removed unnecessary references 2017-06-01 15:27:19 -07:00
David Fowler d10a6293bd Discover hub methods at startup time (#503)
* Discover hub methods at startup time
- Errors will show up earlier as a result instead of cryptic
first connect errors.
2017-06-01 09:47:39 -10:00
Kiran Challa 6d9f56bf4e Removed unnecessary references 2017-06-01 12:06:45 -07: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
Pawel Kadluczka cb9f44ddf6 Fixing WebSocketsTransport to handle exceptions correctly
Exceptions thrown when sending or receiving messages would leave the
WebSockets transport in a half-closed state when one of the loops is
closed but the other one is still running preventing from the
Connection.Closed event to be fired.

Fixes: #412
2017-05-26 07:58:44 -07:00
Hao Kung fbf7e1fb72 Add auth reference 2017-05-25 21:56:28 -07:00
Hao Kung 42739b064f React to Auth + switch to PolicyEvaluator 2017-05-25 18:22:51 -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 e68a1b294f Fix long polling graceful shutdown (#476)
- If a message was sent and the application was ended in the same
poll request, the connection would be closed by the time the next poll
came in which resulted in a 404. This change waits until the transport writes
all data before closing it.
- Also fixed a test so that the exception started to show client side.

#469
2017-05-22 09:07:26 -07:00
David Fowler 323dae4ce9 Handle case where scanning happens after dispose. (#475)
- ConnectionManager.Scan would null ref because the timer.Change was being called
after closing all connections.
2017-05-21 23:19:17 -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
Pawel Kadluczka 4bb9721d39 Adding strongly typed Invoke and On overloads
See: #311
2017-05-19 09:47:16 -07:00
Nate McMaster ef7a3514cd Upgrade test framework versions and fix test issues (#453) 2017-05-15 12:50:30 -07:00
Mikael Mengistu 04863032a2 Increase the size of the WebSockets buffer to 4K. (#448) 2017-05-15 13:14:45 -04:00
Pavel Krymets 67ecd4746e Remove unnecessary package references (#446) 2017-05-10 15:14:26 -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
BrennanConroy 1da4e07fff Use common ObjectMethodExecutor (#440) 2017-05-07 10:05:21 -07:00
Pawel Kadluczka 9d07eeef91 Merge branch 'rel/2.0.0-preview1' into dev 2017-05-05 17:11:55 -07:00
Pawel Kadluczka c053b8cd9d Fixing Win7 tests 2017-05-05 17:10:23 -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
Mikael Mengistu db868af8d8 Added stricter SSE message type parsing (#410) 2017-04-28 11:58:10 -07:00
moozzyk 82f99a1424 Work around for a Firefox bug
Firefox won't fire EventSource open event until it receives some data. The workaround is to send an empty comment when starting ServerSentEvent transport.

Fixes: #352
2017-04-27 10:34:47 -07:00
Mikael Mengistu 74b318b3e4 Support binary messages in SSE parser (#418) 2017-04-26 15:04:48 -07:00
Andrew Stanton-Nurse 5aea7292cd prevent websocket deadlock (#419) 2017-04-25 15:18:47 -07:00
Andrew Stanton-Nurse 1018a20c61 more logging (#417) 2017-04-24 12:38:39 -07:00
Andrew Stanton-Nurse fc54ffc96e fix build 2017-04-20 16:06:15 -07:00
Andrew Stanton-Nurse 64e9cba14d fix build broken by PlatformAbstractions (#409) 2017-04-20 14:17:45 -07:00
Andrew Stanton-Nurse c2eec09ba0 react to removal of PlatformAbstractions (#405) 2017-04-20 11:01:06 -07:00
Mikael Mengistu 8c8f6c708b Server-Sent Events Transport + Parser (#401) 2017-04-18 16:08:48 -07:00
moozzyk e691e1cff8 Removing legacy raw format for `send`
Fixes issues #383 and #127
2017-04-18 11:34:43 -07:00
Kiran Challa fd7707e7d2 Upgraded IntegrationTesting package to 0.4.0 2017-04-14 16:38:21 -07:00
moozzyk db66b1e553 TransportFactory should not try creating WebSocket transport on Win7/2008R2 2017-04-11 16:34:20 -07:00
BrennanConroy 9993fd96da Use policy names in EndPointOptions (#340) 2017-04-11 12:35:31 -07:00
moozzyk 04719dee82 Adding transport factory 2017-04-11 09:16:36 -07:00
David Fowler 0546dc21f4 Disable response buffering via the IHttpBufferingFeature (#379)
* Disable response buffering via the IHttpBufferingFeature
- To make sure SignalR works with servers and middleware
that do perform response buffering, disable it via the
IHttpBufferingFeature for SSE.
- Added test to verify buffering is disabled
2017-04-10 19:05:06 -07:00
Kai Ruhnau 4c183b4d00 Quickly fail the UFT-8 validation if the first byte is already invalid 2017-04-10 12:23:46 -07:00
BrennanConroy 2dfada051e React to CoreFx changes 2017-04-05 08:48:30 -07:00
David Fowler 5df022df0c Remove skipped tests and increased timeout for failing test 2017-04-04 22:13:12 -07:00
David Fowler 3b8e1a5380 Added a close timeout to the web socket transport
- Today we don't end the request if the application completes
but the websocket transport hasn't gotten the receive frame as yet.
This changes adds a WebSocketOptions.CloseTimeout to EndPointOptions
that allows configuring this timeout. When the timeout is reached, we abort
the connection and end the transport task so that the request can end.
- Added tests for websocket timeout and skipped tests for application timeouts
2017-04-04 09:59:41 -07:00
David Fowler 87e6da6e4c Handle exceptions and Cancellation in DisposeAsync (#366) 2017-04-03 22:21:41 -07:00
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
BrennanConroy f6f0007c12 React to CoreFx byte[] slice 2017-04-03 11:45:00 -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
moozzyk fb512bbf41 Using common XUnitLoggerProvider
Fixes #331
2017-03-27 16:19:40 -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
Andrew Stanton-Nurse 430b8a3686 Disable Autobahn Tests for now
Filed #336 to track restoring them.
2017-03-23 21:20:54 -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
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
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 77e763a516 port aspnet/WebSockets#149 (#301) 2017-03-15 15:45:06 -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 4bacbfeb05 Enabling Debug logging in a flaky test 2017-03-14 08:49:57 -07: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
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