Search code examples
c#asp.net-coreasp.net-core-signalr

ASP.NET Core SignalR - Refactor HubConnection.On<>() sentences


Is there any way to refactor HubConnection.On<>() sentences to methods in a SignalR (C#) client, so that these kind of sentences:

    StartConnectionAsync(signalRUrl);

    _connection.On<string>("ServerBroadcast", message =>
    {
        Console.WriteLine("[BROADCAST]");
    });
    _connection.On<string>("ServerMessage", message =>
    {
        Console.WriteLine("[INDIVIDUAL MESSAGE]");
        _connection.InvokeAsync("ClientMessageAsync", "Hi there!");
    });
    _connection.On<string>("MemberJoined", message =>
    {
        Console.WriteLine(message);
    });
    _connection.On<string>("MemberLeft", message =>
    {
        Console.WriteLine(message);
    });

get substituted by something similar to this:

public void ServerBroadcast(string message)
{
    Console.WriteLine(message);
}
public void ServerMessage(string message)
{
    Console.WriteLine(message);
}
public void MemberJoined(string message)
{
    Console.WriteLine(message);
}
public void MemberLeft(string message)
{
    Console.WriteLine(message);
}

and there's no need to have anything after StartConnectionAsync(signalRUrl);.

Thanks in advance,

Eduardo


Solution

  • Not yet, but there's a feature that will happen at some point called client side hubs https://github.com/aspnet/SignalR/issues/466