Tôi đã cố gắng để có được ứng dụng khách WPF của tôi để nhận được một tin nhắn SignalR được gửi bởi dịch vụ WCF. Tôi đã thử rất nhiều thứ và bây giờ đã sử dụng để hacking đi với hy vọng rằng một cái gì đó chỉ hoạt động. Tôi đã làm theo hướng dẫn và ví dụ trực tuyến, và tôi chỉ đơn giản là không thể có được phương pháp WPF OnSignalRMessage() của tôi để được gọi. Tôi sẽ làm gì sai ở đây?Tin nhắn SignalR không nhận được trên máy khách
trung tâm của tôi:
public class PrestoHub : Hub
{
public void Send(string message)
{
Clients.All.OnSignalRMessage(message);
}
}
lớp khởi động của tôi:
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HubConfiguration { EnableCrossDomain = true };
app.MapHubs("http://localhost:8084", config);
}
}
Phương pháp bắt đầu chủ SignalR của tôi (trong máy chủ dịch vụ WCF của tôi):
private void StartSignalRHost()
{
const string url = "http://localhost:8084";
WebApplication.Start<Startup>(url);
}
Mã để thực sự gửi một số tin nhắn:
GlobalHost.ConnectionManager.GetHubContext<PrestoHub>().Clients.All.OnSignalRMessage("snuh");
Console.WriteLine("Sent 'snuh' to all clients...");
My WPF phương pháp khách hàng:
private void InitializeSignalR()
{
var hubConnection = new Connection("http://localhost:8084");
hubConnection.Start();
hubConnection.Received += OnSignalRMessage;
}
private void OnSignalRMessage(string data)
{
MessageBox.Show(data);
}
Lý do tại sao chỉ định một URL khiến ứng dụng của bạn không thành công: https://github.com/SignalR/SignalR/issues/962 –
Vì vậy, đó là vì tôi đã chỉ định URL đầy đủ? Nếu tôi muốn thay đổi nó, tôi cần phải làm một cái gì đó như thế này? 'MapHubs (" ~/SignalR2 ")' –