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
Mikael Mengistu
8ec2848646
AllExcept for Dynamic and Typed Hubs ( #796 )
2017-08-31 15:30:19 -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
Pawel Kadluczka
fa1f7f0b13
Renaming Microsoft.AspNetCore.SignalR to Microsoft.AspNetCore.SignalR.Core
2017-08-31 10:10:02 -07:00
BrennanConroy
b8d2d24b67
Log connection resets as trace not error ( #799 )
2017-08-30 14:57:26 -07:00
BrennanConroy
5ff5c38325
Add Group Add and Remove acks ( #780 )
2017-08-30 14:07:23 -07:00
Nate McMaster
9c0dc52d67
Use Directory.Build.props/targets
2017-08-29 10:17:20 -07:00
Mikael Mengistu
b60e598277
Setting the User-Agent header ( #759 )
2017-08-27 16:35:28 -07:00
Mikael Mengistu
a200cd46b1
Use ForceAsyncAwaiter to make sure we're not on the app SyncContext ( #758 )
2017-08-25 14:02:17 -07:00
Pawel Kadluczka
bcd5a1bd6e
Filtering out SSE tests for browsers with no EventSource
2017-08-24 15:33:24 -07:00
BrennanConroy
a702713cd4
SignalR C# Client logging ( #752 )
2017-08-24 08:37:05 -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
Mikael Mengistu
d469cc3151
Clients Subset - AllExcept ( #700 )
2017-08-22 17:33:27 -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
4898c0d3df
Integrating MsgPack support in TS client
2017-08-11 11:44:52 -07:00
Pawel Kadluczka
9eabce1b02
Enabling tests which would have prevented a bug
2017-08-11 11:22:45 -07:00
BrennanConroy
b393200fd3
SSE StopAsync should ignore exception (handled elsewhere) ( #708 )
2017-08-10 14:18:34 -07:00
Mikael Mengistu
eb008a0dfe
Fix potential null ref in RedisHublifetimeManager RemoveGroup ( #706 )
2017-08-10 09:54:26 -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
Hao Kung
6008b57d0f
React to AuthZ change
2017-07-21 11:05:12 -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
BrennanConroy
3010eaaee2
Add logging scope ( #670 )
2017-07-18 16:13:06 -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
36ecbd9efd
Accounting for ReadAsync throwing OperationCanceledException
2017-07-13 11:07:39 -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
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
David Fowler
de21ce1637
Expose IGroupManager on IHubContext ( #638 )
...
- Adding groups is no longer coupled to the incoming connection
so we should expose it outside of the hub itself.
2017-07-05 23:50:54 -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
10b195bcce
Move DefaultConnectionContext out of Sockets.Abstractions ( #627 )
2017-07-01 15:26:28 -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
Mikael Mengistu
b2bc4e6207
Added a (Uri,HttpMessageHandler) ctor for HttpConnection ( #609 )
2017-06-28 15:24:55 -07:00
BrennanConroy
dc29e98032
Support Authorize attribute on EndPoints ( #606 )
2017-06-28 14:52:52 -07:00
David Fowler
ccf6cd415e
Remove dependency on new compiler (temporarily)
2017-06-27 22:49:11 -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
5234437af8
Remove unused dependency
2017-06-23 01:27:43 -07:00
David Fowler
a34e4055cd
Reduce pipelines dependency to just extensions
2017-06-22 09:43:21 -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
Hu Weiwen
40bef1bc78
Simplify delegate invoking ( #565 )
2017-06-15 07:45:32 +02:00
David Fowler
ae21379736
Fixed 205 status code
2017-06-13 06:00:26 +02:00
David Fowler
cde0aa741a
Removed unused dependencies ( #558 )
2017-06-13 03:03:28 +02:00
BrennanConroy
3cabb6aeb1
Don't over-discover Hub methods ( #511 )
2017-06-12 14:26:33 -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
Mikael Mengistu
27979d835f
Clean up GroupManager ( #542 )
2017-06-08 17:06:41 -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
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
Nate McMaster
fd7abb31e8
Lift M.ANC.Sockets.Common to .NET Standard 2.0
2017-06-06 15:28:27 -07:00
David Fowler
d8583535c8
Remove unused code
2017-06-06 10:58:29 -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
Kiran Challa
7de91da37d
Merge branch 'rel/2.0.0-preview2' into dev
2017-06-03 19:28:28 -07: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
BrennanConroy
52f2104c78
React to Base64 API changes
2017-06-02 20:40:06 -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
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
BrennanConroy
762d52133c
Change Base64 to Base64Encoder ( #492 )
2017-05-26 17:48:36 -07:00
Mikael Mengistu
b862d35b10
Update Targets ( #486 )
2017-05-26 20:00:12 -04:00
John Luo
47ac4e5bf9
React to Hosting changes
2017-05-26 10:53:10 -07:00