Azure Functions - 将消息从 TimerTrigger 广播到 Azure SignalR 服务

Azure Function - Broadcast a message from an TimerTrigger to an Azure SignalR Service

我希望做的就是每 5 分钟向所有人广播一条消息。

我认为下面的方法可行,但我需要一个 connectionId,而 connectionId 是只读的。

我考虑过使用 LogicApps,但它们没有连接到 SignalR。我发现的每个示例都着眼于较旧的、已弃用的版本。如果可行的话,我什至会很乐意为我的服务分配一个唯一的 ConnectionId。

    [FunctionName("SendMessage")]
    public static async Task RunAsync([TimerTrigger("0 */1 * * * *")] TimerInfo myTimer, ILogger log)
    {
        HubConnection connection = new HubConnectionBuilder()
            .WithUrl(new Uri("http://localhost:5003/MessageHub"))
            .WithAutomaticReconnect()
            .Build();

        await connection.StartAsync();

        await connection.InvokeAsync("SendMessageToGroup", "Group2", "This is a test");
    }

使用这个:

var connection = new HubConnectionBuilder()
                .WithUrl("http://localhost:5003/messagehub", options =>
                {
                    options.Headers["Application"] = "API Sender";
                })
                .WithAutomaticReconnect()
                .Build();

await connection.StartAsync();
await connection.SendAsync("SendNotification", "test");

在你的messagehub.cs中,创建这个:

public async Task SendNotification(string mensagem)
{
    await Clients.All.SendAsync("ReceiveGenericEvent", mensagem, DateTime.Now.Ticks.ToString());
}

https://github.com/hgmauri/signalr-socket-dotnet5