0
我不確定如何最好地解釋此問題。未在服務器上所需的PHP文件中設置EventSource「event」參數
我有一些自定義事件處理像這樣一個Javascript的EventSource對象:
var source = new EventSource('updates.php');
source.addEventListener('add', addHandler, false);
source.addEventListener('remove', removeHandler, false);
在updates.php,我可以定義使用「事件:」自定義事件參數的更新流,如下所示,觸發相應的處理程序。
echo "event: add" . PHP_EOL;
echo "data: " . $message . PHP_EOL;
這工作在updates.php精細
updates.php通過require_once包括updates2.php。這也適用於updates2.php,並在我的Javascript中調用正確的處理程序。
updates2.php通過require_once包含updates3.php。這不適用於updates3.php - 所有事件默認爲「消息」類型,不會觸發自定義處理程序。
是否將內容類型設置爲文本/事件流,標題('Content-Type:text/event-stream'); ? –
你可以在問題中包含所有'php'文件嗎?在服務器或'EventSource'錯誤'處理程序中是否記錄了任何錯誤? – guest271314
@ GaneshK我已經設置了內容類型,它在任何地方都能正常工作,但其中包含php文件。 onerror處理程序中沒有錯誤 - 它將它作爲默認消息而不是自定義類型事件記錄到onmessage – Monbrey