2017-02-05 3 views
0

я не могу понять, почему я не могу осуществить это в 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 

ответ