Enabling hub connection with customized hub protocols

This commit is contained in:
Pawel Kadluczka 2017-09-20 16:46:02 -07:00 committed by Pawel Kadluczka
parent 126901a08f
commit 6ed3f6d1aa
1 changed files with 22 additions and 2 deletions

View File

@ -4,6 +4,7 @@
using System; using System;
using Microsoft.AspNetCore.SignalR.Internal.Protocol; using Microsoft.AspNetCore.SignalR.Internal.Protocol;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MsgPack.Serialization;
using Newtonsoft.Json; using Newtonsoft.Json;
namespace Microsoft.AspNetCore.SignalR.Client namespace Microsoft.AspNetCore.SignalR.Client
@ -21,10 +22,29 @@ namespace Microsoft.AspNetCore.SignalR.Client
return hubConnectionBuilder.WithHubProtocol(new JsonHubProtocol()); return hubConnectionBuilder.WithHubProtocol(new JsonHubProtocol());
} }
public static IHubConnectionBuilder WithJsonProtocol(this IHubConnectionBuilder hubConnectionBuilder, JsonSerializerSettings serializerSettings)
{
return hubConnectionBuilder.WithHubProtocol(new JsonHubProtocol(JsonSerializer.Create(serializerSettings)));
}
public static IHubConnectionBuilder WithJsonProtocol(this IHubConnectionBuilder hubConnectionBuilder, JsonSerializer jsonSerializer)
{
return hubConnectionBuilder.WithHubProtocol(new JsonHubProtocol(jsonSerializer));
}
public static IHubConnectionBuilder WithMessagePackProtocol(this IHubConnectionBuilder hubConnectionBuilder) public static IHubConnectionBuilder WithMessagePackProtocol(this IHubConnectionBuilder hubConnectionBuilder)
{ {
return hubConnectionBuilder.WithHubProtocol( return hubConnectionBuilder.WithHubProtocol(new MessagePackHubProtocol());
new MessagePackHubProtocol()); }
public static IHubConnectionBuilder WithMessagePackProtocol(this IHubConnectionBuilder hubConnectionBuilder, SerializationContext serializationContext)
{
if (serializationContext == null)
{
throw new ArgumentNullException(nameof(serializationContext));
}
return hubConnectionBuilder.WithHubProtocol(new MessagePackHubProtocol(serializationContext));
} }
public static IHubConnectionBuilder WithLoggerFactory(this IHubConnectionBuilder hubConnectionBuilder, ILoggerFactory loggerFactory) public static IHubConnectionBuilder WithLoggerFactory(this IHubConnectionBuilder hubConnectionBuilder, ILoggerFactory loggerFactory)