2015-05-20 3 views
2

Все работает, и теперь это не так :) Я продолжаю просматривать свой исходный контроль, но я не могу понять, что пошло не так. Я не получаю ошибки, и у меня возникли проблемы с выяснением, что происходит при отладке. Клиентская команда для вызова концентратора получает вызов, но концентратор никогда не вызывается. Не знаю, почему.SignalR 2.2.0: клиент не может называть концентратор, концентратор не набирается

<!--Reference the SignalR library. --> 
<script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script> 
<!--Reference the autogenerated SignalR hub script. --> 
<script src="~/signalr/hubs"></script> 

/сигналR/хабы сценарий создается.

Он используется для работы со следующими пакетами, которые я в настоящее время установили с помощью NuGet (я пробовал переустановить их)

Microsoft ASP.NET SignalR Core Components 
Microsoft ASP.NET SignalR JavaScript Client 
Microsoft ASP.NET SignalR System.Web 
Microsoft ASP.NET SignalR 
Microsoft.Owin.Host.SystemWeb 
Microsft.Owin.Security 
Microsoft.Owin 
OWIN 

UpdateInstallProgress (строка installID) никогда не вызывается :(

namespace RealtimeInstaller.Hubs 
{ 
    public class UpdateInstallHub : Hub 
    { 
     public void UpdateInstall() 
     { 
      Clients.All.updateInstall(); 
     } 

     public void UpdateInstallProgess(string installID) 
     { 
      Clients.All.updateInstallProgess(installID); 
     } 
    } 
} 

Ниже приводится адрес, на который клиент вызывает сервер в JS. Это вызвано вызовом, но тогда концентратор никогда не вызывается!

connection.server.updateInstallProgess(@ViewBag.installID); 

Не беспокойтесь о том, что находится в теле, ниже - код JS на стороне клиента, который никогда не называется! Это связано с тем, что хаб никогда не вызывается для вызова этого кода на стороне клиента.

var connection = $.connection.updateInstallHub; 

    connection.client.updateInstallProgess = function (installID) { 
     //code that never gets called :(
    }; 

Ниже Startup.cs

using Owin; 
using Microsoft.Owin; 
[assembly: OwinStartup(typeof(SignalRChat.Startup))] 
namespace SignalRChat 
{ 
    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      // Any connection or hub wire up and configuration should go here 
      app.MapSignalR();  //mapping the SignalR hubs to the http routes 
     } 
    } 
} 

Почему не ступица дозвонились? Я подозреваю, что это связано с моими пакетами/ссылками, но я не уверен, как это исправить, а не просто переустанавливать пакеты, о которых я упоминал ранее. Любые идеи вообще будут оценены!

+1

Включите ведение журнала, чтобы узнать, что происходит. Вы не показывали код клиента - например, я не вижу, что вы даже начинаете соединение. – Pawel

+0

Включите ведение журнала, как это? connection.logging = true; Можете ли вы привести пример того, как будет выглядеть код клиента «начать соединение»? Благодарим за отзыв – iappreciateyourhelp

+1

Вот отличный учебник http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client – Pawel

ответ

1

В вашем коде js, который вы показали, вы, похоже, не начинаете соединение.

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