微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SignalR Hubconnection 未收到来自 Azure 函数应用的任何消息

如何解决SignalR Hubconnection 未收到来自 Azure 函数应用的任何消息

首先,我创建了一个 HTTP 触发器函数

public static class Negotiate
{
    [FunctionName("Negotiate")]
    public static SignalRConnectionInfo Run(
        [HttpTrigger(AuthorizationLevel.Anonymous,"post",Route = null)] HttpRequest req,ILogger log,[SignalRConnectionInfo(HubName = "col")] SignalRConnectionInfo connectionInfo)
    {
        return connectionInfo;
    }
}

接下来,我已将 SignalR 绑定添加到 Azure 函数(服务总线触发器)

[SignalR(HubName = "col")] IAsyncCollector<SignalRMessage> signalRMessage

然后,当我尝试使用此 SignalR 绑定推送消息时

var list = GetPatientAR();
await signalRMsg.AddAsync(new SignalRMessage
{
 Target = "patientarlist",Arguments = new[] { list }
});

使用 HubConnectionBuilder 构建的连接根本没有收到来自此 Azure 函数的任何消息。

HubConnectionBuilder 的代码是:

private collectionHubConnection: signalR.HubConnection;

public startConnection() {
   this.collectionHubConnection = new signalR.HubConnectionBuilder()
  .withUrl("http://localhost:7071/api",{
    skipNegotiation: false,transport: signalR.HttpTransportType.WebSockets
  }).build();
this.collectionHubConnection.start()
  .then(() => console.log("collection SIGNALR CONN DONE"))
  .catch(err => console.log("collection SIGNALR ERROR:" + err));
}

ngOnInit() {
  this.startConnection();
}


loadPatientAR() {
this.collectionservice.getPatientARData().subscribe((data) => {
  this.patientarary = data;
  console.log("Patient AR DATA FROM API",this.patientarary);
});
this.collectionHubConnection.on("patientarlist",(data) => {
  this.patientarary = data
  console.log("par data",data);
})
}

signalr 的服务模式是 Serverless。 我也没有收到任何错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。