過去1年間、問題なく動作するシグナルハブが1つありました。今日、2 つ目のハブを追加しようとすると、機能しません。最初の手順と同じ手順を実行しましたが、役に立ちませんでした。
これが私の ~/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));
}
}
});
呼び出し時に「errorPageHub」を使用して自分のページで
$.connection.hub.start({ transport: 'longPolling' }, function () {
console.log('connection started!');
});
以下はfirebugへの出力です::
connectionData [{"name":"Web.Infrastructure.Logging.Broadcasting.ErrorPageHub","methods":["addError","addSuccess","addWarning","addEvent"]}]
connectionId 1806c3f7-e2e0-4ec7-9eb1-670a43fac912
transport longPolling
接続データは、私のページで初期化しているハブに対応しています。現在、pulsePageHub を使用しようとしているページで、同じ connection.hub.start 呼び出しを使用すると、以下が firebug に出力されます (これらは別のページにあることに注意してください。ページで connection.start への呼び出しは 1 つしかありません)。
connectionData []
connectionId 05b2354d-63ac-469a-bf0b-bd4e06e56426
transport longPolling
errorPageHub を実行しているのとまったく同じ方法で pulseHub を初期化していますが、接続データは常に空であるため、ブロードキャストを取得することはありません。このページに errorPageHub の初期化を追加すると、送信される唯一の connectionData は errorPageHub です。
この 2 番目のハブを初期化してブロードキャストを受信するにはどうすればよいですか? この質問はここで提起されたものと非常に似ていますが、解決されませんでした
私のハブはクライアント側で次のように宣言されています::
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");
};
}
そして私のパルスページハブは次のようになります:
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");
};