javascript - SignalR 动态集线器名称

标签 javascript .net azure signalr azure-functions

我正在使用 Azure 函数从事件中心读取消息并将它们发布到 SignalR 实例。我有连接到 SignalR 实例并正在接收消息的前端 JavaScript。我想要的是根据传入的值动态设置我的 Azure Function 中的“HubName”属性。这是否可行?我在下面包含了我的 Azure 函数调用。在这两种方法中,我想动态设置 HubName 值,该值被硬编码为“deviceMessages”

    public static SignalRConnectionInfo GetSignalRInfo(
        [HttpTrigger(AuthorizationLevel.Anonymous)] HttpRequest req,
        [SignalRConnectionInfo(HubName = "deviceMessages")] SignalRConnectionInfo connectionInfo)
    {
        return connectionInfo;
    }


    public static Task SendMessage(
        [EventHubTrigger("{EventHubName}", Connection = "EventHubConnectionAppSetting")]string myEventHubMessage,
        [SignalR(HubName = "deviceMessages")] IAsyncCollector<SignalRMessage> signalRMessages)
    {
        return signalRMessages.AddAsync(
            new SignalRMessage
            {
                Target = "newMessage",
                Arguments = new[] { myEventHubMessage }
            });
    }

最佳答案

您可以使用命令式的方式进行绑定(bind)。使用IBinder binder在函数的签名中,您可以在运行时创建绑定(bind)。

var signalRAttribute = new SignalRAttribute(/* your settings here */));
var outputMessages = await binder.BindAsync<IAsyncCollector<SignalRMessage>>(signalRAttribute);

这里也有很好的示例:

How do I use Binder to perform dynamic bindings in my C# Function?

和这里:

https://weblogs.asp.net/sfeldman/azure-functions-to-make-audit-queue-and-auditors-happy

关于javascript - SignalR 动态集线器名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53192113/

相关文章:

Javascript 对象和属性 : Adding & Accessing Properties

javascript - 收集使用构造函数创建的所有对象?

javascript - 用JavaScript中的“选中”替换单选按钮

c# - 为什么 .NET 创建新的子字符串而不是指向现有字符串?

.net - System.Security.Cryptography.X509Certificates.X509Certificate2 在目标框架版本中不可用

azure - 正在为Azure App Services中的多个虚拟应用程序配置AspNetCoreModuleV2

debugging - 是否可以从同一网络上的另一台计算机访问 Azure 模拟器?

javascript - 如何使用 Node.js 获取 Windows 版本?

c# - 如何在C#中访问Form类?

Azure 函数未生成 extensions.json