81 votes

Comment utiliser l'instance de hub SignalR en dehors de la ligne de hub

J'utilise SignalR pour diffuser des messages à tous mes clients. Je dois déclencher la diffusion en dehors de ma classe de hub, c'est-à-dire quelque chose comme ci-dessous:

var broadcast = new chatHub(); //creating object of my chathub broadcast.Send("Admin","stop the chat"); //Calling send method of my hubclass

Le message d'erreur suivant s'affiche: "L'utilisation d'une instance de concentrateur non créée par HubPipeline n'est pas prise en charge."

141voto

halter73 Points 6762

Vous devez utiliser GetHubContext :

 var context = GlobalHost.ConnectionManager.GetHubContext<chatHub>();
context.Clients.All.Send("Admin", "stop the chat");
 

Ceci est décrit plus en détail sur http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X