Commit Graph

62 Commits

Author SHA1 Message Date
Andrew Stanton-Nurse d281cb72ea add "messaging" endpoints and transports
* Need a separate set of primitives to handle messaging
* Using Channels (not Pipelines!) to provide the data flow for messaging
* All transports are now "message" based transports
* Added an adaptor to convert message-based transports to serve
streaming endpoints
2017-01-09 16:01:08 -08:00
moozzyk 217f707456 Sorting out exceptions
Making sure that OnConnected/OnDisconnected events are invoked correctly (e.g. if invoking OnDisconnectedAsync on hub threw we would not call OnDisconnectedAsync on lifetime manager and therefore we would continue to use/track connections that were already closed)
2017-01-09 08:29:44 -08:00
Pranav K 1492b41af0 Updating to 4.4 CoreFx packages 2016-12-21 22:57:01 -08:00
Mikael Mengistu 23c0522db9 Added missing copyright and license headers 2016-12-19 14:30:43 -05:00
Mikael Mengistu e1d9aa2dd4 Early version of the .NET Client 2016-12-14 10:04:48 -08:00
David Fowler df9057a6f7 Revert "Revert "React to hosting changes""
This reverts commit 12649b19bf.
2016-12-14 00:01:35 -08:00
David Fowler 12649b19bf Revert "React to hosting changes"
This reverts commit f48bd8d185.
2016-12-13 23:56:10 -08:00
David Fowler f48bd8d185 React to hosting changes 2016-12-13 23:03:20 -08:00
David Fowler 5f3c1060ab Clean up shutdown management (#59)
* Clean up shutdown management
- ConnectionManager now implements IApplicationEvents. It makes testing cleaner
but makes service registration a little messy.

* Cleaned up service registration and layering a bit
- Added SocketsApplicationLifetimeEvents instead of implementing it
on ConnectionManager directly.
- Exposed ConnectionManager.CloseConnections()
2016-12-05 22:07:19 -08:00
David Fowler 1b59fc6f80 DI enabled Microsoft.AspNetCore.Sockets (#47)
* DI enabled Microsoft.AspNetCore.Sockets
- Added AddSockets extension method to IServiceCollection
- Inject IApplicationLifetime into ConnectionManager to handle
graceful shutdown and added test.
- Call AddSockets from AddSignalR

* PR feedback
- Added AddSignalR overload that takes Action<SignalROptions>
2016-11-26 23:09:38 -08:00
Andrew Stanton-Nurse 940ccf5c65 add tests to WebSockets transport (#35)
* add tests to WebSockets transport
* adds some error handling
* make logger factory required
* allow frames to be received after the application closes the output
2016-11-23 11:26:12 -08:00
David Fowler 4aa65cf0bf Updated to new System.IO.Pipelines package instead of Channels 2016-11-15 21:46:18 -08:00
Andrew Stanton-Nurse 2431c5925c integrate Channels-based WebSockets into SignalR (#28) 2016-11-15 15:05:45 -08:00
Pranav K 97bf8c3c09 Fix NuGetPackageVerifier issues 2016-11-11 11:44:20 -08:00
moozzyk 10c741b14e Updating dependency version to fix a 0.3.0 => 1.1.0 upgrade warning 2016-11-11 10:49:54 -08:00
Pranav K 67129b2515 Update dependency versions 2016-11-10 10:27:21 -08:00
David Fowler d00f1f93b2 Added support for net451 and netstandard1.3
- Replaced Task.CompletedTask with TaskCache.CompletedTask
- Updated tests and src
2016-11-07 21:39:19 -08:00
Andrew Stanton-Nurse dfa9c927b7 clean up project.jsons and NuGet.config (#9)
* clean up project.jsons and NuGet.config
* clean up netstandard references
* clean up netstandard tfm
* change WebSockets descriptions
2016-11-07 14:00:41 -08:00
Andrew Stanton-Nurse d299cc9186 apply license headers 2016-11-07 12:00:04 -08:00
David Fowler b114e4e9fd Get rid of RpcEndpoint and samples
- Merge RpcEndpoint and HubEndPoint, still need to move discovery of hub
methods to another class.
2016-11-03 00:17:01 -07:00
David Fowler f51fcadeb1 Dispose the ConnectionManager on application shutdown 2016-11-02 23:14:12 -07:00
David Fowler 5f23231d9b Make ConnectionMetadata object,object dictionary 2016-11-02 22:30:16 -07:00
David Fowler 0e690d636f Remove casts where possible 2016-11-02 22:17:03 -07:00
David Fowler 7db1eb8f25 Add Async suffix to everything 2016-11-02 22:02:29 -07:00
David Fowler a175609bb1 Start transport before endpoint 2016-11-02 21:28:05 -07:00
David Fowler 8dd61250f4 Fix the projects
- Fixed dependencies
- Fixed NS dependency
2016-11-02 18:50:57 -07:00
moozzyk 2bbca5e7fe Adding error handling
Fixing SSE transport on the server
2016-11-02 17:09:11 -07:00
moozzyk 466c8d9db9 Adding ServerSentEvents 2016-11-02 17:09:11 -07:00
moozzyk 181053e876 Adding longpolling 2016-11-02 17:09:11 -07:00
Andrew Stanton-Nurse b2108a6d65 major updates to WebSockets implementation
* Ping/Pong handling
* UTF-8 validation
* Customization through WebSocketOptions
* Closes connection on Protocol Errors
* Autobahn Test Suite integrated
2016-11-02 11:27:56 -07:00
David Fowler 53858495dc Hubs are more fleshed out (#11)
- `HubEndPoint<T>` : `RpcEndPoint<T>` where T is the Hub type. Optimizing for a single hub per connection here.
- Hubs get OnConnectedAsync and OnDisconnectedAsync methods that are invoked at the right time and with the right scope.
- Introduced HubLifetimeManager<THub> (naming TBD) which is the center of the universe for Hub behaviors.
2016-11-01 23:15:31 -07:00
moozzyk ffc0a048e3 Addressing review comments 2016-10-27 09:30:20 -07:00
moozzyk fd10deba6c Removing formatters 2016-10-27 09:30:19 -07:00
moozzyk a8c831bad6 Very hacky protobuff support 2016-10-27 09:30:06 -07:00
moozzyk fb387ed03d Decoupling formatters from endpoints
Moving formatters out from Sockets
2016-10-25 16:37:23 -07:00
moozzyk 8b905907fe Typed formatters 2016-10-25 16:37:22 -07:00
moozzyk f64c986b5d Adding support to non-Json hub invocation 2016-10-25 16:37:21 -07:00
David Fowler 8bd8887213 Don't call CompleteReader, the dispatcher can handle that 2016-10-09 15:07:30 -07:00
David Fowler 08bba972c1 React to channel API changes 2016-10-07 16:18:23 -07:00
David Fowler eef2f14c78 Flush even before we get end of message 2016-10-07 01:06:04 -07:00
moozzyk bbecb0c0dc Fixing SSE transport
Content-Encoding: identity disables all the transformations and therefore fixes the issue where IIS is buffering SSE data
2016-10-06 14:20:54 -07:00
David Fowler 3032909f3c Added tests 2016-10-04 01:32:30 -07:00
David Fowler e5e8d1bee3 Decouple the dispatcher from routing for easier testing 2016-10-04 00:12:07 -07:00
David Fowler 411f44f263 Reduce code duplication 2016-10-03 23:52:51 -07:00
David Fowler 1647432ef6 Added Connection property to EndPoint
- Exposes a list of connections for user code to act on
- The connection list is thread safe (uses a concurrent dictionary under the hood)
- Removed the Bus and just used the connection list in the samples
2016-10-03 22:58:56 -07:00
moozzyk 4cd4ddfad5 More structed connection metadata 2016-10-03 14:03:10 -07:00
David Fowler 2b7a396670 When EndPoint ends, the connection ends. 2016-10-03 02:41:28 -07:00
David Fowler 99d7aea78c Add User to Connection 2016-10-03 02:08:31 -07:00
David Fowler 8e66d63577 Code cleanup (somewhat)
- Transports have be drastically simplified due to channels
- Make sure tasks don't leak
2016-10-03 01:52:18 -07:00
David Fowler e018fe70f7 Handle message fragments 2016-10-02 23:41:06 -07:00