J'essaie de configurer SignalR avec mon système Azure. La configuration est assez standardAppel de SignalR à partir de la fonction Azure
- portail web principal dans Azure service App écrite dans ASP.NET MVC
- Un rôle de travailleur de services cloud qui effectue la logique métier. Le rôle de travail écoute sur une file d'attente sur laquelle le portail écrit. Quand un utilisateur démarre une opération qui prend beaucoup de temps à partir du portail, je souhaite que le service de cloud puisse informer tous les navigateurs connectés. Pour cela, je dois utiliser un service de cloud computing basé sur la logique commerciale C++ existante
via SignalR que le service cloud est complet.
Je pensais que je pouvais le faire en utilisant une fonction Azure comme un client SignalR, qui pourrait être déclenché pour forcer SignalR à diffuser un message en utilisant le code dans une fonction Azure comme celui-ci
HubConnection hub = new HubConnection(*URL OF PORTAL GOES HERE*);
var proxy = hub.CreateHubProxy(*NAME OF HUB GOES HERE*);
await hub.Start();
await proxy.Invoke("Hello"); // Name of default hub method
ASP.NET MVC côté , J'utilise également les files d'attente Azure Service Bus, ce qui semble être le conseil en matière de mise à l'échelle. Donc, dans mon Startup.cs j'ai
public class Startup
{
public void Configuration(IAppBuilder app)
{
GlobalHost.DependencyResolver.UseServiceBus(@"*SERVICE BUS CONNNECTION STRING GOES HERE*", "blah");
app.MapSignalR();
}
}
Note: Pour que cela fonctionne avec la dernière SignalR je devais utiliser le paquet NuGet Microsoft.AspNet.SignalR.ServiceBus3 sinon je viens de recevoir un exception lors de l'appel UseServiceBus.
Maintenant, tout semble fonctionner. Je peux appeler la fonction Azure de PostMan et bien sûr dans mon navigateur l'appel de signal vient à travers.
Cependant, je ne suis pas sûr si c'est la bonne chose à faire. La mise à l'échelle fonctionnera-t-elle dans ce cas ou existe-t-il un meilleur moyen de forcer Signalr à diffuser des messages?
merci
Vous devriez accepter la réponse de Rob comme réponse. Bonne étiquette Stackoverflow. – McGuireV10