public virtual Task HandlePingAsync()

in src/Microsoft.Azure.SignalR.Common/ServiceConnections/ServiceConnectionContainerBase.cs [188:221]


    public virtual Task HandlePingAsync(PingMessage pingMessage)
    {
        if (RuntimeServicePingMessage.TryGetClientCount(pingMessage, out var clientCount))
        {
            Endpoint.EndpointMetrics.ClientConnectionCount = clientCount;
        }
        if (RuntimeServicePingMessage.TryGetServerCount(pingMessage, out var serverCount))
        {
            Endpoint.EndpointMetrics.ServerConnectionCount = serverCount;
        }
        if (RuntimeServicePingMessage.TryGetConnectionCapacity(pingMessage, out var connectionCapacity))
        {
            Endpoint.EndpointMetrics.ConnectionCapacity = connectionCapacity;
        }
        if (RuntimeServicePingMessage.TryGetStatus(pingMessage, out var status))
        {
            Log.ReceivedServiceStatusPing(Logger, status, Endpoint);
            _hasClients = status;
            Endpoint.IsActive = GetServiceStatus(status, CheckWindow, CheckTimeSpan);
        }
        else if (RuntimeServicePingMessage.TryGetServersTag(pingMessage, out var serversTag, out var updatedTime))
        {
            Log.ReceivedServersTagPing(Logger, Endpoint);
            if (updatedTime > _serversTagContext.Item2)
            {
                _serversTagContext = Tuple.Create(serversTag, updatedTime);
            }
        }
        else if (RuntimeServicePingMessage.TryGetMessageLogEnableFlag(pingMessage, out var enableMessageLog))
        {
            _serviceDiagnosticLogsContext.EnableMessageLog = enableMessageLog;
        }
        return Task.CompletedTask;
    }