Próbuję pobrać moją aplikację kliencką WPF do odbierania komunikatu SignalR wysłanego przez usługę WCF. Próbowałem wielu rzeczy i teraz uciekam się do hakowania w nadziei, że coś po prostu działa. Po zapoznaniu się z tutoriali i przykładów online, po prostu nie mogę uzyskać mojej metody WPF OnSignalRMessage(), aby uzyskać wywołanie. Gdzie ja się tu mylę?Komunikat SignalR nie jest odbierany przez klienta.
Moja piasta:
public class PrestoHub : Hub
{
public void Send(string message)
{
Clients.All.OnSignalRMessage(message);
}
}
Moja klasa startowy:
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HubConfiguration { EnableCrossDomain = true };
app.MapHubs("http://localhost:8084", config);
}
}
Sposób, który rozpoczyna mojego gospodarza SignalR (w moim hosta usługi WCF):
private void StartSignalRHost()
{
const string url = "http://localhost:8084";
WebApplication.Start<Startup>(url);
}
Kod aby wysłać wiadomość:
GlobalHost.ConnectionManager.GetHubContext<PrestoHub>().Clients.All.OnSignalRMessage("snuh");
Console.WriteLine("Sent 'snuh' to all clients...");
My WPF metody klienckie:
private void InitializeSignalR()
{
var hubConnection = new Connection("http://localhost:8084");
hubConnection.Start();
hubConnection.Received += OnSignalRMessage;
}
private void OnSignalRMessage(string data)
{
MessageBox.Show(data);
}
Powód, dla którego podanie adresu URL spowodowało awarię aplikacji: https://github.com/SignalR/SignalR/issues/962 –
Czyli dlatego, że podałem pełny adres URL? Jeśli chcę to zmienić, muszę zrobić coś takiego? 'MapHubs (" ~/SignalR2 ")' –