OnConnected бьет не стабильно - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть проект ASP.NET SignalR версии 2.4.Я создал концентратор на сервере сигнализации (с помощью веб-приложения), а затем переопределил метод Onconnected следующим образом:

  public override Task OnConnected()
    {
        _log.Debug("OnConnected: " + Context.ConnectionId);

        Interlocked.Increment(ref _usersCount);

        var user = new UserDataDto()
        {
            ConnectionId = Context.ConnectionId,
            ClientId = Context.QueryString["clientId"],
            GroupName = Context.QueryString["groupName"],
            Token = Context.QueryString["access_token"],
            RefreshId = Context.QueryString["refresh_token"],
            MachineId = Context.QueryString["machineId"],
            SystemName = Context.QueryString["systemName"],
            ConnectedAt = DateTime.Now
        };

        _users[Context.ConnectionId] = user;

        _log.Debug("AddGroup: AddGroup");

        AddGroup(Context.ConnectionId, Context.QueryString["systemName"], Context.QueryString["groupName"], Context.QueryString["machineId"], Context.QueryString["clientId"]);

        return base.OnConnected();
    }

Клиент-концентратор:

  var connection = $.hubConnection(PUlSE_SETTINGS.signalUri);
    me.signalR.logging = true;
    connection.qs = {
        'server': false,
        'access_token': sessionFactory.get('access_token'),
        'refresh_token': sessionFactory.get('refresh_token'),
        'clientId': sessionFactory.get('clientId'),
        'groupName': me.groupName,
        'systemName': me.systemName,
        'machineId': '',
        'role': sessionFactory.get('role')
    };

    var chatHub = connection.createHubProxy(PUlSE_SETTINGS.hubName);
    connection.start().done(function () {
        console.log(chatHub.connection.state);
    });

Когда клиент подключен, соединение запускается успешно (консоль.log показал состояние 1), но в методе OnConnected ничего не произошло.Таким образом, мы не можем получить данные, отправленные с сервера-сигнализатора:

Clients.All.SendMessage(machineId, json);

Есть предложения по этому вопросу?

...