首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >signalr第二个集线器上的连接数据为空

signalr第二个集线器上的连接数据为空
EN

Stack Overflow用户
提问于 2013-04-15 22:52:54
回答 1查看 1.4K关注 0票数 0

在过去的一年里,我有一个signalr集线器,工作起来没有任何问题。今天,当尝试添加第二个集线器时,它就是不起作用。我遵循了与第一个相同的步骤,但都没有用。

以下是我的~/signalr/hubs的输出

代码语言:javascript
复制
 // Create hub signalR instance
$.extend(signalR, {
    errorPageHub: {
        _: {
            hubName: 'Web.Infrastructure.Logging.Broadcasting.ErrorPageHub',
            ignoreMembers: ['error', 'event', 'warning', 'success', 'namespace', 'ignoreMembers', 'callbacks'],
            connection: function () { return signalR.hub; }
        },

        error: function (error, callback) {
            return serverCall(this, "Error", $.makeArray(arguments));
        },

        event: function (eventDescription, callback) {
            return serverCall(this, "Event", $.makeArray(arguments));
        },

        warning: function (warning, callback) {
            return serverCall(this, "Warning", $.makeArray(arguments));
        },

        success: function (success, callback) {
            return serverCall(this, "Success", $.makeArray(arguments));
        }
    },
    pulsePageHub: {
        _: {
            hubName: 'Web.Infrastructure.Logging.Broadcasting.PulsePageHub',
            ignoreMembers: ['tenderAdded', 'tenderUpdated', 'projectAdded', 'projectUpdated', 'namespace', 'ignoreMembers', 'callbacks'],
            connection: function () { return signalR.hub; }
        },

        tenderAdded: function (message, callback) {
            return serverCall(this, "TenderAdded", $.makeArray(arguments));
        },

        tenderUpdated: function (message, callback) {
            return serverCall(this, "TenderUpdated", $.makeArray(arguments));
        },

        projectAdded: function (message, callback) {
            return serverCall(this, "ProjectAdded", $.makeArray(arguments));
        },

        projectUpdated: function (message, callback) {
            return serverCall(this, "ProjectUpdated", $.makeArray(arguments));
        }
    }
});

在我的页面上,当我调用

代码语言:javascript
复制
$.connection.hub.start({ transport: 'longPolling' }, function () {
        console.log('connection started!');
    });

以下是firebug的输出:

代码语言:javascript
复制
connectionData  [{"name":"Web.Infrastructure.Logging.Broadcasting.ErrorPageHub","methods":["addError","addSuccess","addWarning","addEvent"]}]
connectionId    1806c3f7-e2e0-4ec7-9eb1-670a43fac912
transport   longPolling

connectiondata与我在页面上初始化的集线器相对应。现在,在我尝试使用pulsePageHub的页面上,以下是使用相同connection.hub.start调用时firebug的输出(请注意,这两个页面位于不同的页面,我在一个页面上只有一次对connection.start的调用)

代码语言:javascript
复制
connectionData  []
connectionId    05b2354d-63ac-469a-bf0b-bd4e06e56426
transport   longPolling

我用与初始化errorPageHub完全相同的方式初始化pulseHub,但是connectiondata始终是空的,因此它不会接收到任何广播。如果我将errorPageHub初始化添加到此页面,则发送的唯一connectionData是errorPageHub。

如何初始化第二个集线器以接收广播?这个问题与here提出的问题非常相似,但它从未得到解决

我的集线器在客户端声明如下::

代码语言:javascript
复制
        var error = $.connection.errorPageHub;

    error.addError = function (message) {
        appendMessage(message, "error");

    };

    error.addSuccess = function (message) {
        appendMessage(message, "info");
    };

    error.addWarning = function (message) {
        appendMessage(message, "warning");
    };


    error.addEvent = function (message) {
        appendMessage(message, "info");
    };
}

我的pulse页面集线器如下:

代码语言:javascript
复制
  var pulse = $.connection.pulsePageHub;

    pulse.tenderAdded = function (message) {
        appendMessage(message, "info");
        alert("hi");
    };

    pulse.tenderUpdated = function (message) {
        appendMessage(message, "warning");
        alert("hi");
    };

    pulse.projectAdded = function (message) {
        appendMessage(message, "info");
        alert("hi");
    };

    pulse.projectUpdated = function (message) {
        appendMessage(message, "warning");
        alert("hi");
    };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-15 22:56:57

您使用的是什么版本的SignalR?

在开始连接之前,您需要为您感兴趣的集线器连接事件处理程序。这就是:

hub.client.something =函数(){ };

否则它就不会起作用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16018321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档