spa*_*man 0 c# signalr signalr-hub
去年我有一个信号中心,工作没有任何问题。今天,当尝试添加第二个集线器时,它不起作用。我已按照与第一个相同的步骤进行操作,但无济于事。
这是我的 ~/signalr/hubs 的输出
// 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));
}
}
});
Run Code Online (Sandbox Code Playgroud)
当我打电话时在我的页面上使用“errorPageHub”
$.connection.hub.start({ transport: 'longPolling' }, function () {
console.log('connection started!');
});
Run Code Online (Sandbox Code Playgroud)
以下是 firebug :: 的输出
connectionData [{"name":"Web.Infrastructure.Logging.Broadcasting.ErrorPageHub","methods":["addError","addSuccess","addWarning","addEvent"]}]
connectionId 1806c3f7-e2e0-4ec7-9eb1-670a43fac912
transport longPolling
Run Code Online (Sandbox Code Playgroud)
连接数据与我在页面上初始化的集线器相对应。现在,在我尝试使用pulsePageHub的页面上,使用相同的connection.hub.start调用时,以下内容将输出到firebug(请注意,这些位于不同的页面上,我在页面上只有一次对connection.start的调用)
connectionData []
connectionId 05b2354d-63ac-469a-bf0b-bd4e06e56426
transport longPolling
Run Code Online (Sandbox Code Playgroud)
我正在以与执行 errorPageHub 完全相同的方式初始化pulseHub,但连接数据始终为空,因此它永远不会接收任何广播。如果我将 errorPageHub 初始化添加到此页面,则发送的唯一连接数据是 errorPageHub。
我如何初始化第二个集线器来接收广播?这个问题与这里提出的问题非常相似,但从未得到解决
我的集线器在客户端声明如下::
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");
};
}
Run Code Online (Sandbox Code Playgroud)
我的脉冲页面中心如下所示:
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");
};
Run Code Online (Sandbox Code Playgroud)
您使用的是哪个版本的 SignalR?
在开始连接之前,您需要为您感兴趣的集线器连接事件处理程序。那是:
hub.client.something = function() { };
否则就行不通。
| 归档时间: |
|
| 查看次数: |
1567 次 |
| 最近记录: |