BrennanConroy
1790d6bdf0
Serialize once per format to increase perf in broadcasting scenarios ( #1498 )
2018-02-27 14:55:00 -08:00
Andrew Stanton-Nurse
6a2d41cc9f
Fix #924 by introducing HubDispatcher abstraction ( #1479 )
2018-02-22 20:59:34 -08:00
David Fowler
c8d4cf689f
Tackling some low hanging performance fruit ( #1470 )
...
* Tackling some low hanging performance fruit
- Use native Memory/Span APIs on Stream and WebSocket in .NET Core 2.1
- Remove double copying in formatters
- Implemented custom HttpContent over ReadOnlyBuffer<byte>
2018-02-20 13:50:31 -08:00
BrennanConroy
d9b32ee323
Logging invocations with errors would throw inside logger ( #1445 )
2018-02-13 14:57:21 -08:00
David Fowler
6c22f25818
Client pipelines ( #1435 )
...
- Reworked the Client to be based on pipelines instead of Channels
- SendAsync no longer fails if the http request itself fails but the connection is closed as a result.
- Updated tests
- Base64Encoder needed to support multiple messages in the same span of data
2018-02-12 22:27:43 -08:00
David Fowler
28439d1441
Initial changes to move to pipelines ( #1424 )
...
- Change the Sockets abstraction from Channel<byte[]> to pipelines.
#615
2018-02-09 17:45:21 -08:00
Andrew Stanton-Nurse
0435b6dc6e
add headers and revamp msgpack tests ( #1382 )
2018-02-07 09:36:29 -08:00
Josh Williams
0311f9b415
Throw InvalidDataException instead of FormatException in NegotationProtocol ( #1246 )
...
* Throw InvalidDataException instead of FormatException in NegotationProtocol
- Modify NegotiationProtocol to throw InvalidDataException
- Update NegotiationProtocolTests expectations
- Remove test case for InlineData "Missing required property 'protocol'"
- Update JsonHubProtocol & JsonUtils to throw InvalidDataException
- Update corresponding test expectations
- Add back removed test
Addresses #1203
2018-01-11 13:23:30 -08:00
Andrew Stanton-Nurse
a9d643a93e
remove dependency on system.buffers.primitives ( #1287 )
2018-01-11 11:28:08 -08:00
Andrew Stanton-Nurse
144984e599
Split MsgPack into separate assembly ( #1274 )
2018-01-10 14:20:57 -08:00
Andrew Stanton-Nurse
00a6dc983a
Fix #1170 by removing invocationId from non-blocking calls ( #1218 )
2017-12-19 10:40:58 -08:00
BrennanConroy
588d9cdb11
Use Utf8Parser instead of custom code ( #1200 )
2017-12-12 11:55:48 -08:00
Andrew Stanton-Nurse
a8330067c4
Implement #1157 by adding client timeout for C# client ( #1165 )
2017-12-07 14:54:41 -08:00
Andrew Stanton-Nurse
6e152e24e1
forgot a copyright header ( #1183 )
2017-12-05 16:51:24 -08:00
Pawel Kadluczka
046553cfe4
Avoiding serializing to MemoryStream
2017-11-17 15:02:21 -08:00
Andrew Stanton-Nurse
cb3124be17
First pass at Keep Alive ( #1119 )
...
This adds the Ping message type and support for sending/receiving it in the Hub Protocols. It does not add the logic to transmit keep-alive frames.
2017-11-16 09:45:13 -08:00
Pawel Kadluczka
379160707f
Switching to new base64 APIs ( #1127 )
2017-11-16 09:20:40 -08:00
BrennanConroy
792745ad98
React to CoreFxLab packages ( #998 )
2017-11-13 15:05:35 -08:00
Pawel Kadluczka
ff12b9b20c
Replacing StreamCompletion with StreamInvocation
2017-11-13 10:50:15 -08:00
Nate McMaster
e15a38a14c
Pin package and tool versions to make build more repeatable
2017-11-01 16:40:51 -07:00
Pawel Kadluczka
18f770e937
Late parameter binding ( #1049 )
...
Late parameter binding
Storing exception thrown during parameter binding and rethrowing when the method is about to throw. This allows completing invocations with a HubException and keeping the connection open.
We will also no longer close the connection if parameters for client side methods cannot be bound. We will log and continue.
Fixes : #818
(Also fixing #1005 because I was just touching this line)
2017-10-30 11:31:57 -07:00
Mikael Mengistu
1768a081ba
Updating default pattern( #1046 )
2017-10-23 22:20:31 -07:00
Pawel Kadluczka
8d1d6d0300
Adding StreamCompletion message (C#)
2017-10-19 18:20:03 -07:00
BrennanConroy
de2e0967c3
Adding CancelInvocation message ( #979 )
...
* For Streaming only. And C# client only.
2017-10-06 15:55:39 -07:00
Kai Ruhnau
3c5d283689
Fix the VarInt example for the 2GiB
...
`0x7fffffff` has 31 binary ones. The first four bytes of the VarInt account for 4*7=28, so the fifth byte only needs the remaining three
2017-10-06 10:38:21 -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
4f4fb174ea
Replacing 8-byte-long length prefix with varint
2017-09-28 17:00:49 -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
Tim Seaward
bcda95353e
Remove extra span ( #922 )
2017-09-21 03:30:05 -07:00
Tim Seaward
f71e31a1cd
Fix the double buffer rent/free ( #921 )
...
* Fix the double buffer rent/free
* Fix the double cast to span
2017-09-20 23:30:59 -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
Nate McMaster
d3ae3abe2a
Use PackageLineup to manage PackageReference versions
2017-09-01 16:34:32 -07:00
Nate McMaster
9c0dc52d67
Use Directory.Build.props/targets
2017-08-29 10:17:20 -07:00
Mikael Mengistu
d469cc3151
Clients Subset - AllExcept ( #700 )
2017-08-22 17:33:27 -07:00
Pawel Kadluczka
5ad5f36f88
Changing length prefixing to separator for JSON C#
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
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
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
0ebd33a25c
Plumbing TransferMode on the client side
2017-07-14 10:45:28 -07:00