c# - qué - signalr linux
Diferencia de SignalR entre On y Subscribe de IHubProxy (2)
Odio necro, pero este hilo me lleva por un callejón oscuro. De hecho, es posible usar Extensiones reactivas (Rx) para manejar las suscripciones y en muchos casos esto es preferible ya que permite la composición.
Un artículo bastante decente que explica los conceptos básicos. Lamentablemente, el formato está un poco estropeado en los ejemplos de código, pero puede llegar allí. https://www.safaribooksonline.com/blog/2014/02/10/signalr-rx-framework/
¿Cuáles son las diferencias entre los métodos On
y Subscribe
disponibles en la interfaz IHubProxy
? ¿Cuándo debería uno usar uno sobre el otro?
Suscribirse es de nivel inferior y nunca deberías tener que usarlo. On proporciona sobrecargas más amigables que permiten una escritura fuerte de los argumentos. Aquí hay un ejemplo:
Servidor
public class MyHub
{
public void Send(string message, int age)
{
Clients.All.send(message, age);
}
}
Cliente
Patrón de suscripción
public void Main()
{
var connection = new HubConnection("http://myserver");
var proxy = connection.CreateHubProxy("MyHub");
var subscription = proxy.Subscribe("send");
subscription.Received += arguments =>
{
string name = null;
int age;
if (arguments.Count > 0)
{
name = arguments[0].ToObject<string>();
}
if (arguments.Count > 1)
{
age = arguments[1].ToObject<int>();
}
Console.WriteLine("Name {0} and age {1}", name, age);
};
}
Patrón "On"
public void Main()
{
var connection = new HubConnection("http://myserver");
var proxy = connection.CreateHubProxy("MyHub");
proxy.On<string, int>("send", (name, age) =>
{
Console.WriteLine("Name {0} and age {1}", name, age);
});
}