0

私の MVC4 ASP.NET Web ページには、サーバーへの接続とサーバーへの再接続 (何らかの理由でサーバーとの接続が失われた場合) を処理するための JavaScript 内に以下のコードがあります。

問題は、再接続$.connection.hub.start().done()に応答して呼び出されないこと$.connection.hub.start()です (最初に発行されたときにのみ呼び出されます)。これはバグですか?そうでない場合は、完了したことをクライアントに警告する同等の方法がありますstart()

// Start the signalR connection and request the default page
$.connection.hub.start().done(function () {
    console.info("$.connection.hub.start().done");
    hubProxy.server.sendDefaultPage();
});


//if server goes away - reconnect to it
$.connection.hub.disconnected(function () {
    console.info("disconnected");
    setTimeout(function () {
        $.connection.hub.start();
    }, 5000); // Restart connection after 5 seconds.
});
4

1 に答える 1

1

接続開始ロジックを関数に入れることができます。

function startConnection() {
    // Start the signalR connection and request the default page
    $.connection.hub.start().done(function () {
        console.info("$.connection.hub.start().done");
        hubProxy.server.sendDefaultPage();
    });
}

//if server goes away - reconnect to it
$.connection.hub.disconnected(function () {
    console.info("disconnected");
    setTimeout(startConnection, 5000); // Restart connection after 5 seconds.
});

次に、最初の接続と再接続の両方で .done() コールバックが呼び出されます。

于 2013-09-04T18:45:07.497 に答える