2
SignalR 0.4を掘り始めましたが、問題が残っています。私は物事をシンプルに保つためにどの同じページ上の2つの異なるハブを持っているしたいと思います:2つのハブを持つSignalRの作業を行うことができません
public class ChatHub : Hub
{
public void Send(string message)
{
Clients.addMessage(message);
}
}
public class Chat2Hub : Hub
{
public void Send2(string message)
{
Clients.addMessage2(message);
}
}
これは私のクライアントコードです:
function initChat() {
var chat = $.connection.chat;
chat.addMessage = function (message) {...};
$('.send-cmd').click(function() {...});
return $.connection.hub.start();
}
function initChat2() {
var chat2 = $.connection.chat2;
chat2.addMessage2 = function (message) {...};
$('.send2-cmd').click(function() {...});
return $.connection.hub.start();
}
$(function() {
initChat().done(function() {
initChat2();
});
});
十分なシンプルな、しかし、私は彼らが一緒に働くことはできません。この例では、「チャット」は正しく機能し、「チャット2」はエラーなしで失敗します。 初期化の順序を逆にすると、逆のことが起こります。
私には何が欠けていますか?
動作しません。 signalR.start()には、すでに利用可能なトランスポートがあるかどうかをチェックし、約束を即座に解決するチェックもあります。 Great library BTW :-) – iacoware
何がうまくいかない?一度始める?あなたはコードの問題の束を持っています。 startを呼び出す前に、すべてのハブのすべてのイベントに登録する必要があります。 – davidfowl
あなたは(もちろん)正しいです。 hub.start()はすべてのワイヤーアップが完了した後で呼び出さなければなりません。 – iacoware