この問題を最も詳しく説明する方法がわかりませんでした。サーバー上の必須PHPファイルにEventSourceの "event"パラメータが設定されていません
私はこのようないくつかのカスタムイベントハンドラとのJavascriptのEventSourceオブジェクトがあります、次のように更新ストリームのパラメータ:updates.phpで
var source = new EventSource('updates.php');
source.addEventListener('add', addHandler, false);
source.addEventListener('remove', removeHandler, false);
を、私は「イベント」を使用して、カスタムイベントを定義することができます適切なハンドラをトリガします。
echo "event: add" . PHP_EOL;
echo "data: " . $message . PHP_EOL;
これは
updates.phpがrequire_onceを経由updates2.php含まupdates.phpで正常に動作します。これはまた、updates2.phpで動作し、私のJavascriptで正しいハンドラを呼び出します。
updates2.phpにはrequire_once経由のupdates3.phpが含まれています。これはupdates3.phpでは機能しません。すべてのイベントはデフォルトで「メッセージ」タイプになり、カスタムハンドラは起動しません。
コンテンツタイプがtext/event-stream、header( 'Content-Type:text/event-stream')に設定されましたか。 ? –
Questionにすべての 'php'ファイルを含めることができますか?サーバや 'EventSource''エラーハンドラにエラーが記録されていませんか? – guest271314
@GaneshKコンテンツタイプを設定しましたが、どこでも正しく動作しますが、PHPファイルが含まれています。 onerrorハンドラにエラーはありません。カスタム入力イベントではなく、デフォルトメッセージとしてonmessageに記録します – Monbrey