Search code examples
javascriptc#signalrsignalr-hubsignalr.client

SignalR Client How to Set user when start connection?


Server side:

public override Task OnConnected()
{
    var connectionId = Context.ConnectionId;
    var user = Context.User.Identity.Name; // Context.User is NULL
    return base.OnConnected();
}

Client side (in Console project):

IHubProxy _hub;
string url = @"http://localhost:8080/";
var connection = new HubConnection(url);
_hub = connection.CreateHubProxy("TestHub");
connection.Start().Wait();

When the client connect to the server, I want to know the map between userName and connectionId, But Context.User is NULL. How do I set this value in the client side?


Solution

  • Pass your username using query string.

    Client

    First set query string

    string url = @"http://localhost:8080/";
    var connection = new HubConnection(url);
    _hub = connection.CreateHubProxy("TestHub");
    connection.qs = { 'username' : 'anik' };
    connection.Start().Wait();
    

    Server

    public override Task OnConnected()
    {
        var username= Context.QueryString['username'];
        return base.OnConnected();
    }