每次onmessage后触发EventSource onerror

时间:2018-09-27 06:45:06

标签: javascript php

因此在stackoverflow上搜索了如何使用EventSource的内容,并使用了此处找到的PHP示例之一。但是我看到一个奇怪的行为,在每个“ onmessage”之后触发“ onerror”,所以这个问题分为两个部分:

1)这是正常现象吗?发生消息后是否应触发错误 2)如果没有,那是怎么回事? 2.1)循环不会停止,它会继续并起作用,但是在每次出现消息后仍会使用onerror。

JavaScript

constructor() {
    this._event = new EventSource('/rest/api/event/stream');
    this._event.onerror = () => console.log('test');
    this._event.onmessage = this.onData.bind(this);
}

PHP

public function getEventStream(Request $request) {
    $response = Symfony\Component\HttpFoundation\StreamedResponse();
    $response->headers->set('Content-Type', 'text/event-stream');
    $response->headers->set('Cache-Control', 'no-cache');

    $response->setCallback(function() {
        $data = $this->getData();
        echo 'data: ' . json_encode($data) . "\n\n";
        ob_flush();
        flush();
        sleep(5);
    });
    return $response;
}

其他信息:PHP使用laravel作为框架 我尝试在响应周围使用“ while(true)”,但随后它永远不会触发onmessage

0 个答案:

没有答案