Как подключить события отправки сервера (SSE) к контроллеру PHP MVC - PullRequest
0 голосов
/ 01 ноября 2018

Итак, у меня в настоящее время есть работающая система 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 в объектно-ориентированный класс? Или они всегда должны быть в своих файлах?

...