我正在构建一个基于无服务器架构的应用程序。我陷入困境的部分包括:SPA Web UI、C# .Net 5.0 隔离进程功能(dotnet-isolated)、Azure SignalR 服务(无服务器模式)。
有很多文档和示例如何使用我提到的相同堆栈但使用 .Net 3.1 函数构建不同的实时无服务器应用程序。并且几乎没有关于 SignalR 触发的 .Net 5.0 隔离进程函数的 SignalR 输出绑定的信息。
唯一有用的文档如下: C# 隔离进程: https: //learn.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide SignalR 扩展:https://github。 com/Azure/azure-functions-dotnet-worker/tree/main/samples/Extensions/SignalR
因此,基础知识已涵盖其中。但是,没有有关某些高级 SignalR 输出绑定的信息,这将有助于构建更多功能,例如:将用户添加到组、从组中删除用户。ETC。
到目前为止,我能够构建并运行:协商、发送消息(向所有人、用户或组)、已连接、已断开连接
但我正在努力解决 AddToGroup 部分...这是我的代码:
[Function(nameof(AddToGroup))]
[SignalROutput(HubName = "WebUINotifications", ConnectionStringSetting = "AzureSignalRConnectionString")]
public static OutputObject AddToGroup(
[SignalRTrigger("WebUINotifications", "messages", "AddToGroup")] string item,
FunctionContext context)
{
var logger = context.GetLogger("AddToGroup");
var signalrGroup = JsonSerializer.Deserialize<SignalRGroup>(item);
var userId = signalrGroup.UserId;
var groupName = signalrGroup.Arguments[0];
logger.LogInformation($"UserId: {userId}");
logger.LogInformation($"Group Name: {groupName}");
return new OutputObject()
{
UserId …Run Code Online (Sandbox Code Playgroud)