> Ещё один гуглобот...Попрошу без перехода на личности. Называть всех, кто не согласен с вашим мнением, ботами - это признак дурного тона и некомпетентности.
> Потому что через HTTP есть дофига способов отправить сообщение от клиента к
> серверу, в отличие от WebSockets, который НЕ может работать через HTTP,
> и он ВЫНУЖДЕН реализовать канал от клиента к серверу, который в
> случае с SSE просто не нужен, так данные в обе стороны
> проходят через HTTP в рамках одного класса!
С использованием HTTP можно отправить данные от клиента к серверу:
1. в пути запроса, через query-переменные;
2. в заголовках запроса;
3. в теле запроса (при использовании методов POST, PUT, PATCH).
Это не "дофига способов", это только три. Если отправлять сообщения при помощи SSE, от сервера к клиенту, то можно указать только event и тело.
В Websocket можно указать только тело сообщения. При запросе апгрейда соединения - еще query параметры и заголовки (хоть передачу заголовков мало кто поддерживает).
В конечном счете все сводится к тому, что практически всегда данные передаются в теле запроса, в том или ином сериализованном виде. И с этой точки зрения нет никакой разницы, что использовать.
Кстати, у SSE есть большой, жирный минус: через него нельзя передавать бинарные данные, у него используется \n\n как разделитель сообщений.
> И этот вынужденный костыль, маркетолухи гугла раскручивают как мегафичу...
И SSE, и Websocket были разработаны в рамках группы WHATWG. В нее как бы не только Google входит.
Если смотреть на данные https://caniuse.com/ , то поддержка Websocket в Chrome появилась с версии 4, SSE с версии 6. Не такой уж большой разрыв.
Кстати, там же можно заметить, что в Firefox Websocket появился в версии 4, а SSE в версии 6 (такое вот совпадение) - что, Mozilla в далеком 2011 году тоже продалась Google, раз реализовала Websocket раньше SSE? :)