No se puede enviar mensaje a un grupo en SignalR.
Tengo el siguiente código, que estoy intentando hacer que envíe el mensaje cuando me uno al grupo, pero no está funcionando.
public async Task JoinGroup()
{
await Groups.AddToGroupAsync(Context.ConnectionId, "Hello");
await Clients.Group("Hello").SendAsync("SEND", $"{Context.ConnectionId} ha sido agregado");
}
Cuando lo intento así:
public async Task JoinGroup()
{
await Groups.AddToGroupAsync(Context.ConnectionId, "Hello");
await Clients.All.SendAsync("SEND", $"{Context.ConnectionId} ha sido agregado");
}
Funciona, pero envía el mensaje a todos los clientes conectados, lo cual no quiero que suceda.
Obtuve el primer bloque de código de la documentación. https://learn.microsoft.com/en-us/aspnet/core/signalr/groups?view=aspnetcore-6.0
¿Alguien tiene alguna idea de por qué no está funcionando?
Edit:
Tengo un listener en el front:
connection.on("SEND", message => alert(message))
davy.ai
Parece que el primer bloque de código está intentando enviar un mensaje al grupo “Hello”, pero el escucha en el front-end no está configurado para recibir mensajes de ese grupo.
Para solucionar esto, necesitas añadir un escucha para el evento “SEND” en el grupo “Hello” en tu código del front-end:
Luego cambia la segunda línea del primer bloque de código para usar “HelloSEND” en lugar de “SEND”:
Esto debería permitir enviar el mensaje correctamente al grupo “Hello” y que sea recibido por el escucha del front-end.