2013-12-06 3 views
0

Я пытаюсь ударить по моему MVC5 SignalR Hub через отдельное крошечное клиентское приложение, но безрезультатно.SignalR Client to MVC5

Некоторый фон:

У меня есть регулярное приложение ASP.NET с использованием SingalR 1,10, что я могу ударить с моим клиентом. Код:

ASP.NET Hub:

namespace SignalrTest 
{ 
    public class ScanHub : Hub 
    { 
     public void SendScan(string data, string xmlData) 
     { 
      Clients.All.broadcastMessage(data, xmlData); 
     } 
    } 
} 

Клиент:

connection = new HubConnection("http://localhost:2446/"); 
hubProxy = connection.CreateHubProxy("ScanHub"); 
connection.Start(); 

........ 

private static async Task RunAsync() 
{ 
    object[] param = new object[2]; 
    param[0] = _Data; 
    param[1] = _xmlData; 
    await hubProxy.Invoke("SendScan", param); 
} 

и снова, что он работает нормально. Мой MVC концентратор идентичен другому (я удостоверился, чтобы изменить адрес клиента HubConnection), и у меня есть Startup.cs как:

[assembly: OwinStartupAttribute(typeof(SignalrTest.Startup))] 
namespace SignalrTest 
{ 
    public partial class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.MapSignalR(); 
     } 
    } 
} 

работает мой клиент, он выстреливает без ошибок, но Я не получаю никакого ответа или каких-либо признаков того, что что-то произошло на стороне MVC.

Может ли кто-нибудь увидеть, где я ошибаюсь в приложении MVC? Я не понимаю, нужно ли изменять маршрутизацию. Я рад опубликовать любой другой код, который поможет решить мою проблему. Заранее спасибо.

ответ

0

Попробуйте установить соединение с .NET-клиентом в так называемом async-методе и выполнить быстрый тест, если ваше соединение является хорошим или нет.

private async void Connect() 
{ 
    connection = new HubConnection("http://localhost:2446/"); 
    hubProxy = connection.CreateHubProxy("ScanHub"); 
    await connection.Start(); 
    //If using WPF you can test like so if not use whatever output method you prefer to see if it connects 
    if (Connection.State == Microsoft.AspNet.SignalR.Client.ConnectionState.Connected) 
    { 
      MessageBox.Show("Connected!"); 
    } 
    else 
    { 
      MessageBox.Show("Fail!"); 
    } 
} 
0

Вы действительно используете SignalR 1.1? SignalR 1.1 не использует классы запуска OWIN, и метод MapSignalR даже не компилируется.

Смежные вопросы