2015-06-19 54 views
3

我有2个集线器类在我的项目SignalR不叫seconf集线器类

public class FolderManager : Hub 
{ 
    public FolderManager() 
    { 
    } 
    public void Validator() 
    { 
    } 
} 

public class SeoContentValidator : Hub 
{ 
    public SeoContentValidator() 
    { 

    } 
    public void Validator() 
    { 
    } 
} 

我有我的入门级

public class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     app.MapSignalR(); 
    } 
} 

在我看来,我有这个剧本

<script src="~/Scripts/jquery.signalR-2.2.0.js" type="text/javascript"></script> 
<script src="~/signalr/hubs" type="text/javascript"></script> 

<script> 
    jQuery(document).ready(function(){ 
    var folderManager = $.connection.folderManager; 
    var seoContentValidator = $.connection.seoContentValidator; 
    $.connection.hub.logging = true; 
    $.connection.hub.start().done(function() { 
     folderManager.server.validator(); 
     seoContentValidator.server.validator(); 
    }); 

    }); 
</script> 

我有的问题是signalR可以找到并调用folderManager.server.validator();

但无法找到seoContentValidator.server.validator();

我在做什么错在SeoContentValidator是signalR不能找到它

+1

我遇到你的代码,并无法重新创建错误 - 我有两个验证()方法,无一不是击中设置断点。这就是VS2013和最新的SignalR软件包。请尽可能提供更多细节。 – NigelK

回答

0

这应该只是罚款。其实我试过你的例子。 我signalr /集线器生成的代理具有下面的代码:

proxies['folderManager'] = this.createHubProxy('folderManager'); 
    proxies['folderManager'].client = { }; 
    proxies['folderManager'].server = { 
     validator: function() { 
      return proxies['folderManager'].invoke.apply(proxies['folderManager'], $.merge(["Validator"], $.makeArray(arguments))); 
     } 
    }; 

    proxies['seoContentValidator'] = this.createHubProxy('seoContentValidator'); 
    proxies['seoContentValidator'].client = { }; 
    proxies['seoContentValidator'].server = { 
     validator: function() { 
      return proxies['seoContentValidator'].invoke.apply(proxies['seoContentValidator'], $.merge(["Validator"], $.makeArray(arguments))); 
     } 
    }; 

而就开始了我的JS登录状态:

[ ... ] SignalR: Invoking foldermanager.Validator 
    [ ... ] SignalR: Invoking seocontentvalidator.Validator 

我还设置在轮毂上的方法断点,跑在调试模式下的应用程序。两个断点都被触发。

我复制的JS代码是否存在于您生成的代理文件中? 运行时没有JS错误?

我认为你写的示例代码是不是你的实际代码。尝试调试您的代码,并使用详细的错误消息:

public class Startup { 
     public void Configuration(IAppBuilder app) { 
      var hubConfiguration = new HubConfiguration(); 
      hubConfiguration.EnableDetailedErrors = true; 
      app.MapSignalR(hubConfiguration); 
     } 
    } 

将您的hub方法包装在try-catch块中,它可以帮助很多。

如果您发现问题,请告诉我。

相关问题