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 Microsoft.AspNetCore.SignalR.Internal.Protocol;
using Microsoft.Extensions.Logging;
using MsgPack.Serialization;
using Newtonsoft.Json;
namespace Microsoft.AspNetCore.SignalR.Client
@ -21,10 +22,29 @@ namespace Microsoft.AspNetCore.SignalR.Client
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)
{
return hubConnectionBuilder.WithHubProtocol(
new MessagePackHubProtocol());
return hubConnectionBuilder.WithHubProtocol(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)