SSE против WebSockets против ни одного из них - PullRequest
0 голосов
/ 05 апреля 2020

Я был нанят заказчиком для реорганизации веб-приложения, написанного на php (для которого у меня очень мало документации), а затем для добавления некоторых функций. Изучив код, я обнаружил, что это веб-приложение использует SSE для случайных уведомлений и веб-сокеты для внутреннего чата (с использованием библиотеки Ratchet php).

Читая код, я обнаружил, что SSE был реализован на ранней стадии, тогда они решили использовать веб-сокеты, когда от клиента требовалась функция чата. Кажется, все работает достаточно хорошо, но заказчик спрашивает, можно ли настроить для лучшей производительности (к сожалению, переписать все с нуля не вариант).

Я видел много php запущенных процессов (apache и mpm_event), поэтому я погрузился в реализацию веб-сокета SSE и обнаружил, что VPS, на котором размещено веб-приложение, находится за брандмауэром, который заблокировал время соединения максимум до 120 секунд. Таким образом, сценарии SSE php будут уничтожены вскоре после запроса клиента, а затем повторно активированы с помощью команды reply 5000 stream (действующей как стандартный пул ...). Со стороны веб-сокетов я увидел, что js клиентам необходимо часто проверять и переустанавливать sh соединения по тем же причинам.

Я думаю, что использовать SSE и webSockets бесполезно, поэтому я должен решить, какой из них лучше всего выполнять sh различные задачи. Я предпочитаю Websockets, потому что даже при повторном подключении каждые 120 сек c они должны быть легче, чем SSE (реализовано как ajax пул). Я знаю, что есть много вещей, которые нужно посмотреть перед этим (запрос к базе данных, загрузка ресурсов ...), но я знаю, как с ними справиться. Любой совет? Заранее спасибо

...