Я пытаюсь освоить технологию веб-push, поэтому начал осматриваться.Я в основном нашел 2 технологии, то есть Websockets и SSE.После исключения Websockets из-за отсутствия поддержки Perl я хотел попробовать более родной подход SSE.
Теперь попытка заставить работать SSE - настоящая боль в заднице.Каждая документация содержит противоречивую информацию, и, как представляется, нет единого мнения о том, как работает SSE.Некоторые говорят, что вам нужен тег <event-listen src="events.pm">
, другие говорят, что вам нужен только объект EventSource
JS.Даже с объектом EventSource я нашел около 4 возможных реализаций, и ни одна из них, похоже, не работает.
Вот что у меня есть.У меня есть events.pm
, который использует мод-Perl.Если вы вызываете этот файл, он возвращает data: I haz a websocket
.Это отправляется с типом содержимого application/x-dom-event-stream
.
Файлы HTML и JS так часто переписывались с разными реализациями, что я отказался от них.Ребята, не могли бы вы дать мне рабочий пример?
Также: я не понимаю, как вы можете отправлять конкретные сообщения клиенту.Отправка предварительно определенного сообщения, кажется, хорошо.Однако, если я представляю ситуацию, когда кто-то отправляет мне сообщение, я не понимаю, как именно эта информация («для вас есть новое сообщение») передается именно тому браузеру, которому нужна эта информация.Каждый пост, который я нашел в этом, в лучшем случае расплывчатый.
РЕДАКТИРОВАТЬ
По сути, мне нужен способ сказать «эй, вам разрешено получать это уведомление?покажи мне свой идентификатор / сессию / токен! 'на основе каждого подключенного клиента.Интересно, возможно ли это вообще с SSE.