Desidero inviare i dati alla mia applicazione console che ha una connessione al mio "someHub". Ho provato a fare come descritto nell'esempio da a link ma non ho ottenuto alcun risultato. codice lato server :SignalR: Come chiamare il metodo client .Net dal server?
[HubName("somehub")]
public class SomeHub : Hub
{
public override Task OnConnected()
{
//Here I want to send "hello" on my sonsole application
Clients.Caller.sendSomeData("hello");
return base.OnConnected();
}
}
Clien codice lato:
public class Provider
{
protected HubConnection Connection;
private IHubProxy _someHub;
public Provider()
{
Connection = new HubConnection("http://localhost:4702/");
_someHub = Connection.CreateHubProxy("somehub");
Init();
}
private void Init()
{
_someHub.On<string>("sendSomeData", s =>
{
//This code is not reachable
Console.WriteLine("Some data from server({0})", s);
});
Connection.Start().Wait();
}
}
Qual è la soluzione migliore per l'attuazione di questo e che cosa è la ragione per cui io non sono in grado di richiamare il metodo cliente?
Hai chiamato MapHubs? – halter73
Sì, l'ho fatto. Le chiamate dal client al server funzionano come: myHub.Invoke ("GetValue"). ContinueWith (task => Console.WriteLine ("Valore dal server {0}", task.Result)); , ma dal server al client - no –
Denis
Possibile duplicato di [SignalR + postare un messaggio su un hub tramite un metodo di azione] (http://stackoverflow.com/questions/7549179/signalr-posting-a-message- to-a-hub-via-un-action-metodo) – Liam