Azure SignalR Service Upstream不将消息传递到Azure Function应用

问题描述

我已经在Azure中设置了SignalR服务帐户。

我将其设置为无服务器。

我已将上游URL设置为https://THE-NAME-OF-MY-FUNC-APP.azurewebsites.net/runtime/webhooks/signalr?code=THE-DEFAULT-KEY-FROM-FUNC-APP-APPKEYS_HOST_DEFAULT

此处记录在“规则设置”下:https://docs.microsoft.com/en-us/azure/azure-signalr/concept-upstream#rule-settings

我有一个在Node / TypeScript中创建的AZ Functions应用程序,其中有一个具有SignalRTrigger输入和SignalRMessages输出功能。考虑以下功能

function.js

{
  "bindings": [
    {
      "type": "signalRTrigger","name": "invocation","hubName": "mailBox","category": "messages","event": "heartbeat","connectionStringSetting": "AzureSignalRConnectionString","parameterNames":[
        "mailBoxId"
      ],"direction": "in"      
    },{
      "type": "signalR","name": "signalRMessages","direction": "out"
    }
  ],"scriptFile": "../dist/heartbeat/index.js"
}

还有index.js

import { AzureFunction,Context } from "@azure/functions"

const heartbeatTrigger: AzureFunction = async function (context: Context,invocation: any): Promise<void> {
    context.log.info('Heartbeat function executed');
    let mbid = context.bindingData.mailBoxId;

    // output a hearbeat received
    context.bindings.signalRMessages = [{
        "target": "heartbeatReceived","arguments": [mbid]
    }];

};

export default heartbeatTrigger;

当我在Vue应用程序中使用@ aspnet / signalr客户端时,我可以连接到SignalR集线器。

当我尝试使用myConnection.send('heartbeat','123')时,我期望上面的函数调用

这没有发生。我似乎无法启动该功能

有人可以帮忙吗?

解决方法

我已经花了好几天了。

最后在GitHub上找到了该文档

https://github.com/Azure/azure-functions-signalrservice-extension/tree/master/samples/bidirectional-chat

这解释了如何使其全部正常工作-大块是需要使用的钥匙。 Signalr_extension!