2016-04-16 4 views
0

サーバが送信したイベントを使用する場合、サーバはより多くのイベントが発生しないようにブラウザとどのように通信し、sse接続を終了する必要がありますか?サーバによって送信されたイベントをサーバで停止する

これはプロトコルの一部ですか、またはヒントを通常のイベントでクライアントに渡してイベントソースを閉じることができますか?

答えて

0

server-sentイベントは、さらに別のstreaming technique which is one of ways of Cometです。ストリーミングデータを停止するには、サーバー内の接続を閉じるだけです。あなたはクライアントにのメソッドEventSourceのメソッドを呼び出させる必要はありません。

FYIの次のリンクは、サーバー送信イベントによってバックアップされたCettiaストリーミング転送が、接続を閉じるためにどのように実装されているかを示しています。 https://github.com/cettia/cettia-java-server/blob/1.0.0-Beta1/server%2Fsrc%2Fmain%2Fjava%2Fio%2Fcettia%2Ftransport%2Fhttp%2FHttpTransportServer.java#L358

  • のJavaScriptクライアント - -


    編集、私が追加しましたes.close within es.onerror

  • +0

    アプリはnode.jsに実装されており、ブラウザ(Chrome)はいくつかの方法で接続を終了/終了した後、忘れずにリクエストを繰り返します。 –

    +0

    によるとhttp://html5doctor.com/server-sent-events/#properties) "接続が切断されると、EventSourceはエラーイベントを発生させ、自動的に再接続を試みます。サーバーは、クライアントが試行する前にタイムアウトを制御することもできます再接続する。 –

    +0

    あなたは正しいです。私はこの問題のために[es.onerror内にes.closeを追加しました](https://github.com/cettia/cettia-javascript-client/blob/1.0.0-Beta1/cettia.js#L878-L882) 。混乱させて申し訳ありません。 –

    関連する問題