Chcę przesłać dane do mojej aplikacji konsolowej, która ma połączenie z moim "someHub". Próbowałem zrobić, jak opisano w przykładzie z a link, ale nie otrzymałem wyniku. Server side Kod:SignalR: Jak wywołać metodę klienta .Net z serwera?
[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 kod boczny:
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();
}
}
Co jest najlepszym rozwiązaniem dla realizacji tego i tego, co jest powodem, dla którego nie jestem w stanie wywołać metodę klienta?
Zadzwoniłeś do MapHubs? – halter73
Tak, zrobiłem. Połączenia od klienta do serwera działają prawidłowo: myHub.Invoke ("GetValue"). ContinueWith (task => Console.WriteLine ("Wartość z serwera {0}", task.Result)); , ale z serwera na klienta - nr –
Denis
Możliwy duplikat [SignalR + wysłanie wiadomości do centrum za pomocą metody działania] (http://stackoverflow.com/questions/7549179/signalr-posting-a-message- do-a-hub-via-an-action-method) – Liam