Проверьте Azure Функции, если клиент все еще подключен к услуге SignalR - PullRequest
1 голос
/ 31 января 2020

Я создал функции согласования и отправки сообщений в Azure Функции (аналогично приведенным ниже примерам) для включения службы SignalR. Я устанавливаю UserId на SignalRMessage с помощью специального механизма аутентификации.

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-signalr-service?tabs=csharp

[FunctionName("negotiate")]
public static SignalRConnectionInfo Negotiate(
    [HttpTrigger(AuthorizationLevel.Anonymous)]HttpRequest req, 
    [SignalRConnectionInfo
        (HubName = "chat", UserId = "{headers.x-ms-client-principal-id}")]
        SignalRConnectionInfo connectionInfo)
{
    // connectionInfo contains an access key token with a name identifier claim set to the authenticated user
    return connectionInfo;
}

[FunctionName("SendMessage")]
public static Task SendMessage(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message, 
    [SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{
    return signalRMessages.AddAsync(
        new SignalRMessage 
        {
            // the message will only be sent to this user ID
            UserId = "userId1",
            Target = "newMessage",
            Arguments = new [] { message }
        });
}

Я хочу отправить pu sh уведомление, если клиент больше не подключен, вместо добавления нового объекта в IAsyncCollector. Я также правильно настроил AppCenter pu sh framework, но столкнулся с проблемой. Есть ли простой способ узнать, какой UserId все еще подключен к концентратору? Таким образом, я мог бы отправить пу sh. Каковы рекомендуемые рекомендации Microsoft по этому вопросу?

1 Ответ

0 голосов
/ 31 января 2020

Посмотрите на эту функцию: Azure Служба SignalR представляет функцию интеграции сетки событий , где Служба SignalR испускает два следующих типа событий:

Microsoft.SignalRService.ClientConnectionConnected

Microsoft.SignalRService.ClientConnectionDisconnected

Подробнее здесь .

...