0

我不确定如何最好地解释这个问题。

我有一个带有一些自定义事件处理程序的 Javascript EventSource 对象,例如:

var source = new EventSource('updates.php');
source.addEventListener('add', addHandler, false);
source.addEventListener('remove', removeHandler, false);

在updates.php 中,我可以使用更新流的“event:”参数定义自定义事件,如下所示,以触发适当的处理程序。

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 中不起作用——所有事件都默认为“消息”类型并且不会触发自定义处理程序。

4

1 回答 1

0

我最终使用了在其他几个地方定义的解决方法。

我没有尝试自定义定义 event: 参数,而是使用 JSON 对象作为 data: 参数,并且可以在其中添加我喜欢的任何自定义字段。

于 2017-10-17T03:54:56.843 回答