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
David Fowler
239999e4c9
Make things actually work ( #10 )
...
- Added build.cmd
- Renamed the solution to match our conventions
- Fixed bad doc comment references
- Used strong name version of StackExchange.Redis
2016-11-07 20:58:41 -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
217223e636
Generics overload
...
- Changed IHubConnectionContext and friends to be generic.
- Hub by default is Hub<IClientProxy>. We'll enable dynamic and arbitrary TClients in another commit.
2016-11-05 10:53:54 -07:00
David Fowler
9c10b89fa8
Small tweaks to sample
...
- Fix redis issues with removing while
- Use string interpolation in the Chat hub
2016-11-04 01:50:55 -07:00
David Fowler
6b3d9bd96d
Added group messaging to the sample
...
- Clean up some boiler plate
- Renamed Add/Remove on GroupManager to AddAsync and RemoveAsync
2016-11-04 01:28:49 -07:00
David Fowler
6ccc8d6195
Remove params from HubLifetimeManager
2016-11-04 00:37:04 -07:00
David Fowler
23eb8aa7bd
More redis tweaks
...
- Implemented the task queue
- Only subscribe to user channel if authenticated
2016-11-03 21:07:04 -07:00
BrennanConroy
ed41672381
Implemented better Redis scaleout
...
- Less subscriptions and connections to RedisHubLifetimeManager
2016-11-03 19:03:44 -07:00
BrennanConroy
dbd738726a
Remove unused usings
2016-11-03 15:00:13 -07:00
BrennanConroy
60bc57fb8d
Fix redis subscriptions and missing awaits
2016-11-03 14:58:27 -07: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
Pawel Kadluczka
8d03c014fb
Fixing invocation results for tasks whose result is `VoidTaskResult`
2016-11-02 22:52:52 -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
b6f15338eb
Cleanup and shuffling things
...
- Moved the InvocationAdapterRegistry registration to SignalROptions
- Moved the JsonNetInvocationAdapter to Microsoft.AspNetCore.SignalR
- Remove dead JavaScript code
2016-11-02 20:54:58 -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
61c527f23c
Fixing LongPolling transport
2016-11-02 17:09:11 -07:00
moozzyk
ce17f0d19a
Adding transport selection
...
Fixing serverSentEvents transport
Updating the client 'app'
2016-11-02 17:09:11 -07:00
moozzyk
752f329036
WIP:
...
- separating Connection from RpcConnection
- fixing WebSockets transport to work after rewrite
- clean up
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
moozzyk
29d859b383
WIP
2016-11-02 17:09:11 -07:00
Pawel Kadluczka
5663198733
WIP
2016-11-02 17:09:11 -07:00
moozzyk
6859d33536
ts-client WebSockets + JSON
2016-11-02 17:09:11 -07:00
moozzyk
5e3be6e212
Awaiting tasks returned from hubs and getting the actual result
2016-11-02 17:03:30 -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
9e7513a7bd
Added UseSignalR
2016-11-02 03:20:44 -07:00
David Fowler
6af6db67f4
More refactoring
...
- Moved the IHubConnectionContext implementation out of HubEndPoint
- Added IHubContext to allow getting at the publish side of things without
being in side the hub. The HubEndPoint now injects this as well.
- HubContext has the implementation of the IHubConnectionContext
- Moved ISignalRBuilder and SignalRBuilder into their own files
2016-11-02 03:03:35 -07:00
David Fowler
f41bcb9b2d
Subscribe in parallel
2016-11-02 02:46:52 -07:00
David Fowler
377711f68c
Changes to redis and groups
...
- Made group add and removal async as they may be backed by a network
connection
- Added ISignalRBuilder and a pattern similar to mvc for doing extension methods off
AddSignalR
- Added RedisOptions
2016-11-02 02:29:04 -07:00
David Fowler
40039afd4f
Make a SignalR project and SignalR.Redis project
...
- Moved RPC into SignalR for now since we don't have a middle layer yet.
- Fixed up name spaces
2016-11-02 01:49:05 -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
Andrew Stanton-Nurse
affcb935d7
clean-up and renaming
...
renamed WebSockets project to clarify it's internalityness
2016-10-17 15:27:23 -07:00
Andrew Stanton-Nurse
d2dbd473a0
@davidfowl love dat Func<...,object,...>,object pattern
2016-10-14 15:09:06 -07:00
Andrew Stanton-Nurse
a1c0970222
move prototype WebSockets-over-Channels code in
...
nothing is wired up to anything in Sockets yet, it's just a copy of the
code
2016-10-14 14:36:18 -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
David Fowler
9ee33bf01f
Add transport connection metadata
2016-10-01 23:49:07 -07:00
David Fowler
1ad1120c41
Update the LastActive for reserved connections
2016-10-01 15:59:20 -07:00
David Fowler
2a369f40f6
Small fixes
...
- Pass the Connection to each IHttpTransport
- FlushAsync after writing for WebListener
- Add metadata to Connection
- Added WebListener dependency
2016-10-01 11:52:50 -07:00
David Fowler
9f5ef70164
Added support for websockets
...
- Upgraded to ASP.NET Core 1.1 preview
2016-10-01 10:26:49 -07:00
David Fowler
40ecc9df4d
Remove GetOrAdd from AddNewConnection
2016-10-01 03:53:00 -07:00
David Fowler
f4f763f136
Only run next queued task if the previous was successful
2016-10-01 03:29:49 -07:00
David Fowler
5baaaac22d
Added comments and more tiny code clean up
2016-10-01 03:22:09 -07:00
David Fowler
5195e75b74
Tiny tweaks
2016-10-01 03:09:07 -07:00
David Fowler
813222b406
More cleanup + TaskQueue
...
- Introduced the TaskQueue
- Added IHttpTransport so abort callbacks can happen outside of the
transport implementation
2016-10-01 03:03:20 -07:00
David Fowler
ad2724b22c
Split Connection and ConnectionState
2016-10-01 00:57:35 -07:00
David Fowler
7b8e947567
Use new CopyToAsync method
2016-10-01 00:51:51 -07:00
David Fowler
c3753c4f0e
Renamed the project and split into class library and sample
2016-10-01 00:43:33 -07:00
David Fowler
de291d4d2a
Refactoring
...
- Move http stuff into Http dispatcher
- Exposed IChannel from connection
- Clean up ConnectionManager (tho it's not great yet)
2016-09-30 22:11:29 -07:00
moozzyk
239b5f815f
Fixing longpolling
2016-09-30 15:13:21 -07:00
moozzyk
32ed7ca0c4
SSE kind of works - duplicate messages
2016-09-30 14:21:37 -07:00
David Fowler
27ddb7de90
More cleanup
2016-09-30 02:41:07 -07:00
David Fowler
03352354dc
Initial commit
2016-09-30 01:44:56 -07:00