J'ai la situation suivante: Un utilisateur se connecte à une application ASP.NET MVC4 à l'aide d'un PC. Cette application s'exécute sur plusieurs serveurs IIS, derrière un équilibreur de charge. Après cela, une connexion SignalR entre le serveur et le client est établie. Lorsque l'utilisateur est connecté à cette application principale, un deuxième écran peut être ajouté en utilisant une tablette ou un téléphone (peut être un réseau différent). Ici, l'utilisateur se connecte également et obtient une connexion SignalR.Équilibrage de charge: un utilisateur, plusieurs périphériques sur le même serveur
Dans l'application sur le serveur se produit un type d'événement et ces événements doivent être envoyés aux deux appareils sur SignalR. Par conséquent, il est nécessaire que les deux périphériques soient connectés au même serveur IIS.
Je n'ai aucune expérience avec les équilibreurs de charge du tout. Puis-je faire en sorte qu'un équilibreur de charge utilisant un seul utilisateur, utilisant plusieurs périphériques, redirige toujours vers le même serveur avec tous ses périphériques? Si oui, quel équilibreur de charge est recommandé?
Lorsque j'écris les événements que je dois envoyer aux périphériques dans un cache partagé, chaque serveur doit interroger le cache pour voir s'il existe des événements à envoyer au périphérique, ce qui n'est pas idéal. – pexxxy
Bien sûr. C'est une approche et vous devez peser le coût/bénéfice. J'ai travaillé sur un projet il y a quelques années où nous avions une ferme de serveurs et, de la même manière, nous utilisions SignalR pour renvoyer les résultats au navigateur où le navigateur pouvait ou non être connecté à l'instance IIS originale après sa demande initiale. Nous avons fait un appel à ce moment-là pour le faire interroger une «source de vérité» centrale plutôt que d'essayer de forcer l'affinité. Cela a été bon pour nous dans notre situation et je ne dis pas que cela correspond à votre image, donc vous devriez faire quelques calculs. –