Итак, у меня в настоящее время есть работающая система SSE, которая отправляет уведомления клиентам. Для EventSource я указываю прямой скрипт на сервере notifs.php .
Упрощенно это выглядит следующим образом:
client.js
$(window).on('pageshow',function(){
// Server Sent Events here
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("notifs.php");
source.onmessage = function(event) { ... };
}
});
И сторона PHP выглядит примерно так:
notifs.php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
echo 'data: {"Foo": "Bar}'.PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();
Теперь это работает хорошо, но я бы хотел структурировать весь свой проект в соответствии с шаблоном проектирования MVC, поэтому вместо подключения EventSource к "notifs.php" мне бы хотелось иметь что-то вроде "/ Notification / Notifs /. msgstr ", где уведомление является Контроллером и уведомляет о его действии.
Firefox сообщает мне, что не может создать соединение с localhost /tification / notifs / . Я бы предположил, что это происходит, потому что это не реальный адрес на сервере. В то время как обычные HTTP-запросы проходят через механизм маршрутизации, этого не происходит.
Я не смог найти никакой информации об этом. Возможно ли даже включить конечную точку SSE в объектно-ориентированный класс?
Или они всегда должны быть в своих файлах?