#angular #asp.net-core #signalr #signalr-hub
Вопрос:
Во-первых, я создал функцию 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 является бессерверным.
Кроме того, я вообще не получаю никаких ошибок.