【问题标题】:Adding/removing users to signalR groups in .NET 5.0在 .NET 5.0 中向 signalR 组添加/删除用户
【发布时间】:2021-03-24 23:43:55
【问题描述】:

以下代码一直在 .netcoreapp3.1 中运行,但在将 Http 触发的函数迁移到 .NET 5.0 后停止运行:

public static class AddToGroup
    {
        [Function("addtogroup")]
        public static Task Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = "addtogroup/{trnantId}/{userId}")]
            HttpRequestData req,
            string tenantId,
            string userId,
            [SignalR(HubName = "testhub")]
            IAsyncCollector<SignalRGroupAction> signalRGroupActions,
            FunctionContext executionContext)
        {
            return signalRGroupActions.AddAsync(new SignalRGroupAction
            {
                UserId = $"{tenantId}_{userId}",
                GroupName = tenantId,
                Action = GroupAction.Add
            });
        }
    }

有人可以就 .NET 5.0 中的等效代码提供指导吗?

【问题讨论】:

  • 如果 2 个月后有任何事情,那就太好了。发表此评论是为了团结一致地处理这个尝试迁移到 5.0 同时还使用 Azure 的真正有趣的时间。

标签: azure-functions signalr .net-5 azure-signalr


【解决方案1】:

正如来自编译器的错误所说:“...Attribute 'SignalROutput' 在此声明类型上无效。它仅在 'method、property、indexer' 声明上有效......”。您应该将[SignalR(HubName = "testhub")] 属性放在该方法上。这是sample

您还可以在.Net 5 sample 中看到返回类型MyMessagesample for .NET class library function apps 中之前的SignalRMessage 具有相同的结构。

【讨论】:

  • 抛开编译错误,如何将用户添加到 signalR 消息组或如何从组中删除用户?
  • 之前您在IAsyncCollector 中添加了SignalRGroupAction,现在您可以从方法中返回SignalRGroupAction
  • 这一点在 Microsoft 的文档网站上记录在哪里? @sindo
  • 您分享的那些文档中没有一个既不明确也不明确地谈论这个话题。请您告诉我这些文件中的确切位置,以便得出您的答案吗?
猜你喜欢
  • 2021-12-15
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 2017-09-20
相关资源
最近更新 更多