我正在从前端代码和 Azure 函数(通过 Azure SignalR 服务)调用 SignalR 集线器的原型。我让它在基本级别上工作,但是当从 Azure 函数调用时,我的集线器中的断点没有被命中。
Hub(完整代码,没有其他方法):
public class JobHub : Hub
{
public void BroadcastMessage(string name, string message)
{
Clients.All.SendAsync("broadcastMessage", name, message);
}
蔚蓝功能:
public static class SignalRPrototypeFunction
{
[FunctionName("GarageUpdated")]
public static async Task<ActionResult> Run
(
[HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req,
[SignalR(HubName = "JobHub")] IAsyncCollector<SignalRMessage> signalRMessages,
ILogger log)
{
await signalRMessages.AddAsync
(
new SignalRMessage()
{
Target = "broadcastMessage",
Arguments = new[] { "Azure", "Hello" }
}
);
return new OkResult();
}
}
当我从浏览器连接到我的 Azure SignalR 服务时,我按下了一个按钮,该按钮会在集线器 connection.send('broadcastMessage', "username", "message");
上遇到断点。Clients.All.SendAsync("broadcastMessage", name, message);
从函数调用确实将消息推送到前端(所以它必须通过这一行?)但是断点没有被命中。
有任何想法吗?