【问题标题】:Signalr server does not creates signalr Hub proxies with correct hubnamesSignalr 服务器未创建具有正确集线器名称的信号器集线器代理
【发布时间】:2015-11-24 07:04:59
【问题描述】:

我创建了 2 个继承自 Microsoft.AspNet.SignalR.Hub 的信号器 Hub 类、ActivityFeedHub 类和 ChannelHub 类。我收到 ChannelHub 类的警告,指出类名不是 CLS 投诉,因为基类 Hub 不是 CLS 投诉。 生成的 /signalr/hubs 文件错误。应该创建两个集线器代理,即 'activityFeedHub' 和 'channelHub' ,但是 'channelHub' 它会创建一些名称和方法名称错误的 pr0xy ,即 'K' 。下面是文件。每当我尝试使用“$.connection.channelHub”使用 channelHub 代理名称访问连接时,它都会给我错误 -Uncaught TypeError: Cannot read property 'client' of undefined。

谁能告诉我这里有什么问题并建议我 修复

    $.hubConnection.prototype.createHubProxies = function () {
        var proxies = {};
        this.starting(function () {
            // Register the hub proxies as subscribed
            // (instance, shouldSubscribe)
            registerHubProxies(proxies, true);

            this._registerSubscribedHubs();
        }).disconnected(function () {
            // Unsubscribe all hub proxies when we "disconnect".  This is to ensure that we do not re-add functional call backs.
            // (instance, shouldSubscribe)
            registerHubProxies(proxies, false);
        });

        proxies['activityFeedHub'] = this.createHubProxy('activityFeedHub'); 
        proxies['activityFeedHub'].client = { };
        proxies['activityFeedHub'].server = {
            joinActivityFeed: function (ActivityFeedActorID) {
                return proxies['activityFeedHub'].invoke.apply(proxies['activityFeedHub'], $.merge(["JoinActivityFeed"], $.makeArray(arguments)));
             },

            leaveActivityFeed: function (ActivityFeedActorID) {
                return proxies['activityFeedHub'].invoke.apply(proxies['activityFeedHub'], $.merge(["LeaveActivityFeed"], $.makeArray(arguments)));
             },

            updateActivity: function (relevantActivity) {
                return proxies['activityFeedHub'].invoke.apply(proxies['activityFeedHub'], $.merge(["UpdateActivity"], $.makeArray(arguments)));
             }
        };

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

            b: function (pinnedItem) {
                return proxies['k'].invoke.apply(proxies['k'], $.merge(["b"], $.makeArray(arguments)));
             },

            c: function (ChannelID) {
                return proxies['k'].invoke.apply(proxies['k'], $.merge(["c"], $.makeArray(arguments)));
             },

            d: function (channelId) {
                return proxies['k'].invoke.apply(proxies['k'], $.merge(["d"], $.makeArray(arguments)));
             },

            e: function (channelId) {
                return proxies['k'].invoke.apply(proxies['k'], $.merge(["e"], $.makeArray(arguments)));
             }
        };

        return proxies;
    };

    signalR.hub = $.hubConnection("/signalr", { useDefaultPath: false });
    $.extend(signalR, signalR.hub.createHubProxies());

}(window.jQuery, window));

【问题讨论】:

    标签: jquery asp.net signalr signalr-hub signalr.client


    【解决方案1】:

    这是一个混淆问题。它通过对 Hub 类进行去混淆来修复,信号服务器无法为其创建具有正确 hubname 的正确代理。 这与 Hub 类是非 CLS 投诉无关。

    【讨论】:

      猜你喜欢
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多