Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

356
Vistas
Uso de SignalR en una función de proceso aislado .Net 5.0

Estoy actualizando una función azul de .Net core 3.1 que usa un ServiceBusTrigger, a una función de proceso aislado de .Net 5.0. La función usa SignalR para transmitir mensajes en tiempo real a lo largo de los pasos del proceso, por ejemplo: "Apertura de archivo"... "Lectura de registros: 10 % completo"... "Preparación para mostrar registros", etc. Se transmiten varios mensajes a través de SignalR durante una sola ejecución de la función.

La firma de la función .Net core 3.1 era similar a esto:

 [FunctionName("MyFunction")] public async Task RunTopic( [ServiceBusTrigger("TopicName", "SubscriptionName", Connection = "ConnectionString")] string message, ILogger log, ExecutionContext executionContext, [SignalR(HubName = "Hub", ConnectionStringSetting = "SignalRConnectionString")]IAsyncCollector<SignalRMessage> signalRMessages ) { ... }

Y, a continuación, se muestra un ejemplo de la lógica utilizada para transmitir los mensajes:

 await signalRMessages.AddAsync( new SignalRMessage { Target = "newMessage", Arguments = new[] { $"Message content" } });

Al convertir la función en una función de proceso aislado de .Net 5.0, noté que la implementación de SignalR es un poco diferente. He encontrado ejemplos; sin embargo, parecen abordar escenarios básicos.

En una función de proceso aislado de .Net 5.0, ¿qué pasos se necesitan para permitir que se transmitan varios mensajes en tiempo real a través de SignalR, durante una sola ejecución de la función? Los ejemplos que he visto hasta ahora parecen permitir que se transmita un solo mensaje con cada ejecución de la función.

Este es un ejemplo de la firma del método, después de actualizar la función a una función aislada de .Net 5.0:

 [Function("MyFunction")] [SignalROutput(HubName = "Hub", ConnectionStringSetting = "SignalRConnectionString")] public async Task<CustomMessage> Run( [ServiceBusTrigger("TopicName", "Subscription", Connection = "ConnectionString")] string message, FunctionContext functionContext) { ... } public class CustomMessage { public string Target { get; set; } public object[] Arguments { get; set; } }

Información adicional:

Encontré este artículo publicado que describe lo que estoy preguntando: https://github.com/Azure/azure-functions-dotnet-worker/issues/179

Es decir, IAsyncCollector, compatible con .Net Core 3.1, parecía permitir que se enviaran varios mensajes diferentes/únicos durante el transcurso de la ejecución de la función, en lugar de enviar solo el último mensaje, una vez que se completó la función. En este momento se están considerando alternativas, ya que los comentarios en el vínculo anterior indican que es posible que este comportamiento no se admita en las funciones de proceso aisladas de .Net 5.0.

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda