问题描述
我已经在Azure中设置了SignalR服务帐户。
我将其设置为无服务器。
此处记录在“规则设置”下: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上找到了该文档
这解释了如何使其全部正常工作-大块是需要使用的钥匙。 Signalr_extension!