я не могу понять, почему я не могу осуществить это в Laravel 5.3 Для того, чтобы проверить, я просто сделал чистый PHP и JavaScript:Laravel сервер толчок
РНР:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$val = 20;
echo "data: The value is: " . $val . "\n\n";
flush();
И ЯШ:
var source;
$(document).ready(function() {
source = new EventSource("/eventeg.php");
source.onmessage = function (evnt) {
document.getElementById("serverevent").innerHTML = evnt.data;
};
});
Как только я сменил файл PHP, страница отразила нажатие на «serverevent».
Однако просто пытаются превратить в Laravel:
PHP:
в маршрутах web.php
Route::any('event', '[email protected]');
Затем - (для создания повторного использования кода У меня есть репо, как показанное пространством имён)
<?php
namespace App\DD_laravelAp\Controllers;
class RootEvent_c extends RootController_c {
protected function start($init = null) {
}
public function eventTest() {
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$val = 10;
echo "data: The value is: " . $val . "\n\n";
flush();
}
}
И, наконец, класс, который Laravel следует использовать:
<?php
namespace App\Http\Controllers;
use App\DD_laravelAp\Controllers\RootEvent_c;
class Event_c extends RootEvent_c {
}
С JS изменена, чтобы отразить структуру URL-адрес Laravel:
source = new EventSource("/event");
source.onmessage = function (evnt) {
document.getElementById("serverevent").innerHTML = evnt.data;
};
Ошибка из консоли однако:
Firefox can't establish a connection to the server at http://domain/event