SIgnalR - 如何使用存储在文件夹中的Hub?

时间:2016-04-23 07:52:31

标签: c# asp.net webforms signalr signalr-hub

我正在用C#开发一个ASP Web Form项目。

我有2个SignalR Hubs:

  1. ' HUB1'这是在项目的根目录(\ Hub1.cs)

  2. ' HUB2'它位于文件夹(\ Games \ Hub2.cs)

  3. 我的program.cs

    ImportError: No module named **djano**.conf.urls
    

    当我加载页面时,只加载了Hub1,因为我使用

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

    在js脚本上我使用

    <script src="/Scripts/jquery-1.6.4.min.js"></script>
    <script src="/Scripts/jquery.signalR-2.2.0.js"></script>
    <script src="/signalr/hubs"></script>
    

    如果我写$.connection.Hub2.client.Foo=... ;//some funtion and $.connection.hub.start();//starts the hub

    ,我也看不到Hub2

    我该如何使用它?我需要将Hub放在不同的文件夹中。

    谢谢

2 个答案:

答案 0 :(得分:0)

所有集线器都在/ signalr / hubs中,不参考文件夹。但所有这一切必须以小写字母开头。

你能试试吗?

$.connection.hub2.client.Foo=... ;//some funtion

答案 1 :(得分:0)

如果您提供完整的网址,那么它将起作用。例如(js客户端):

    // yoursite/subfolder/signalr
    var connection = $.hubConnection("https://yoursite.com/games/signalr", { useDefaultPath: false });        
var proxy = connection.createHubProxy('hub2');
    // your custom funcs..
    proxy.on('sayHello', function() {
                                alert("hello");
                            });
    //another important part ONLY if you have another server app installed in 'games'
        $.connection.hub.url = "https://yousite.com/games";
        connection.start()
        .done(function(){ console.log('Now connected, connection ID=' + connection.id); })
        .fail(function(){ console.log('Could not connect'); });