2

したがって、サーバーにコメットソケットを実装し、データをブラウザに正常にプッシュできます。しかし、私がやりたいのは、コメット サーバーがドロップアウトしたときに javascript/jquery でキャッチすることです。

私は私のiframeを持っています:

<div id="iframeDiv" style="visibility:hidden; height:0px">
    <iframe id="comet" src="/messageSocket?-3711886712169888393"></iframe>
</div>

そして、私は新しいメッセージを処理するためのJavaScriptを持っています:

// Comet Server Processes actions
var messageReceived = function(message) {
var commandType = message[1];
switch (commandType) {
    case "1":
        processActionData(message);
        break;
    ...
    default:
        break;
}

}

しかし、たとえば、何らかの理由で接続が切断されたとしましょう。どうすれば元に戻すことができますか? たとえば、Web サイトをホストしているローカル サーバーがシャットダウンし、再び起動した場合、クライアントでタイムアウトをキャッチしたいと思いますか? そして、ページをリロードします。どうすればいいですか?接続がまだ生きているかどうかを判断するために ajax ping 要求を行うループを作成する必要がありますか? 彗星のソケットが死んだときにキャッチするより良い方法はありますか?

4

1 に答える 1

1

comet プロトコルが正確にどのように機能するかはわかりませんが、できることの 1 つは、数秒ごとに ping メッセージを送信することです。サーバーが 10 秒以内に ping を送信しない場合、サーバーが接続を切断したと見なされます。

以前、クライアント サーバー アプリケーションでこのメソッドを使用したことがあります。

于 2012-10-22T23:04:36.117 に答える