Каков наилучший способ реализации уведомлений в режиме реального времени на общем хостинге Server-Sent Events (SSE) или длительный опрос?
Я смотрел видео, в котором говорилось, что SSE не подходит для общего хостинга, сервера Apache и не подходит для PHP и MySql.
Я просто хочу знать, какой метод больше подойдет для длинных опросов или SSE для уведомлений в реальном времени на общем сервере, у меня есть свой сервер на godaddy.com
Пожалуйста, предоставьте хорошие ссылки, объясняющие рекомендуемую технику.
Каждое соединение SSE удерживает открытым выделенный сокет. Если вы используете Apache и PHP, то они также будут в памяти. Они сидят там, запихивая память, даже если вы никогда не отправляете данные клиентам.
Экономика общего хостинга основывается на идее, что большинство пользователей не загружают серверы большую часть времени. Если вы начинаете держать процессы Apache в памяти все время ваш интернет-провайдер будет убивать эти процессы. Например, BlueHost, кажется, имеет скрипт, который автоматически ищет и уничтожает долго выполняющиеся процессы; Я представляю, что GoDaddy имеет то же самое.
Кроме того, интернет-провайдер может поставить прокси-сервер для кэширования перед вашими веб-сайтами, что нарушит работу SSE и длительный опрос. (В этом случае вы можете отправить специальные заголовки прокси-серверу, чтобы запретить это.)
Таким образом, нет технической причины, по которой SSE и длительный опрос не могут использоваться с виртуальным хостингом, но на самом деле ваш провайдер попытается вас остановить.
Что касается другой части вашего вопроса, SSE и длительный опрос в основном совпадают; SSE предоставляет вам встроенный JavaScript API и немного более эффективен. Используйте SSE, когда браузер пользователя поддерживает его, в противном случае напишите свою собственную процедуру длинных опросов.
Если вы привязаны к общему хостингу, я рекомендую использовать короткие опросы (то есть вызов AJAX каждые 15 или 30 секунд). Вы добавляете немного задержки, но экономите немного денег.
Других решений пока нет …