Ответ 1
Подпишитесь на более низкий уровень, и вам никогда не придется его использовать. On обеспечивает более дружественные перегрузки, которые допускают сильную типизацию аргументов. Вот пример:
Сервер
public class MyHub
{
public void Send(string message, int age)
{
Clients.All.send(message, age);
}
}
Client
Подписаться шаблон
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);
};
}
"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);
});
}