0

我的 MVC 应用程序中有两个 SignalR 集线器ChatHubAnotherHub. ChatHub运行良好,但我无法连接到另一个。我知道 SignalR 认识到它的AnotherHub存在,因为我在 /signalr/hubs 中获得了以下 JavaScript:

signalR.chatHub = {
    _: {
        hubName: 'ChatHub',
        ignoreMembers: ['post'],
        connection: function () { return signalR.hub; }
    },

    post: function (room, message) {
        return invoke(this, "Post", $.makeArray(arguments));
    }
};

signalR.anotherHub = {
    _: {
        hubName: 'AnotherHub',
        ignoreMembers: ['doSomething'],
        connection: function () { return signalR.hub; }
    },

    doSomething: function (thing) {
        return invoke(this, "DoSomething", $.makeArray(arguments));
    }
};

在聊天页面上,Fiddler 在连接时告诉我以下内容/signalr/signalr/connect

connectionData      [{"name":"chathub"}]
tid                 10

但是,当尝试连接到 时anotherHub,Fiddler 说:

connectionData      []
tid                 3

我在聊天页面上的javascript:

        cn = $.connection.chatHub;
        $.connection.hub.start();

在另一页上:

        cn = $.connection.anotherHub;
        $.connection.hub.start();

现在,一件奇怪的事情;当我在另一个页面上更改anotherHub为时chatHub,连接有效。当我在聊天页面上更改chatHub为时anotherHub,这也有效。唯一没有的组合anotherHub在另一页上。(我已经通过集线器构造函数上的服务器端断点确认了这一点,并检查了 Fiddler 的 ConnectionData 参数)。有任何想法吗?

4

1 回答 1

0

你确定你在另一个页面上引用了所有相同的 JS 库(尤其是 /signalr/hubs)吗?

于 2012-10-12T14:53:46.573 回答