Отправка сообщения группе пользователей в службе SignalR в функциях Azure - PullRequest
0 голосов
/ 05 ноября 2018

При просмотре документов для привязок SignalR для отправки сообщения указанному пользователю вы включаете свойство UserId в сообщение как таковое -

[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 these user IDs
            UserId = "userId1",
            Target = "newMessage", 
            Arguments = new [] { message } 
        });
}

Этот пример взят прямо из документации, но комментарий подразумевает, что вы несколько идентификаторов пользователя, хотя свойство является строкой, а не массивом.

Как бы вы указали несколько пользователей? (Если, например, они находятся в частном канале чата вместе) Или это ошибка в формулировке комментария, и вам нужно будет отправить сообщение для пользователя?

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

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Групповые операции были представлены в последней версии .

Теперь вы можете:

  • Отправить сообщение группе, используя GroupName в SignalRMessage
  • Добавить / удалить пользователя в группе, используя IAsyncCollector<SignalRGroupAction> output
0 голосов
/ 09 ноября 2018

К сожалению, так же как и в документе, сейчас, с привязкой функции Azure, мы можем отправлять сообщения только одному пользователю или всем клиентам.

См. код текущего расширения SDK Microsoft.Azure.WebJobs.Extensions.SignalRService v1.0.0-preview1-10002. Это показывает, что расширение имеет только два метода SendToAll и SendToUser.

    Task SendToAll(string hubName, SignalRData data);
    Task SendToUser(string hubName, string userId, SignalRData data);

Комментарий смутил вас на самом деле для старого образца , автор забыл изменить его.

Хорошая новость заключается в том, что поддержка групповой работы находится в процессе .

...