代码之家  ›  专栏  ›  技术社区  ›  Kirschstein

在Azure函数的SignalR服务中向一组用户发送消息

  •  4
  • Kirschstein  · 技术社区  · 7 年前

    在看 docs 对于要向指定用户发送消息的signar绑定,可以包括 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 } 
            });
    }
    

    此示例直接取自文档,但注释暗示了您的消息 倍数 用户标识,即使属性是字符串而不是数组。

    对于signar的其他版本,我会将它们放在一个组中,但是函数不存在这样的绑定。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Jerry Liu Phantom    7 年前

    不幸的是,正如doc所说,现在使用Azure函数绑定,我们只能向一个用户或所有客户端发送消息。

    the code of current extension SDK Microsoft.Azure.WebJobs.Extensions.SignalRService v1.0.0-预览1-10002。 它显示扩展只有SendToAll和SendToUser两个方法。

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

    你困惑的评论实际上是为了 old sample ,作者忘了修改。

    好消息是,对集团运作的支持 under progress .

        2
  •  3
  •   myarotskaya    7 年前

    小组行动是在 latest release

    现在您可以:

    • 使用向组发送消息 GroupName 在里面 SignalRMessage
    • 使用添加/删除组中的用户 IAsyncCollector<SignalRGroupAction> 输出