Ответ 1
Короткий ответ - "оба".
XMPP - это набор протоколов приложений для ведения чата в реальном времени (и многое другое, если на то пошло) - он должен каким-то образом переноситься через сеть, поэтому вам нужно привязку к транспорту. Для XMPP существует три основных транспортных привязки -
- TCP/IP, что обычно используется в Интернете с использованием собственных клиентов на устройствах
- HTTP (называемый BOSH), который традиционно используется при использовании XMPP в браузере (поскольку TCP-IP недоступен для приложений Javascript в браузере)
- Websockets, который используется при использовании XMPP в современном браузере.
Итак, если вы разрабатываете приложение чата в браузере, вы должны выбрать XMPP в качестве протокола приложения, и в качестве сетевого транспорта вы будете использовать веб файлы (в современном браузере) или BOSH (в более старом браузере). Если вы используете библиотеку XMPP для Javascript, например, Stanza.io(https://github.com/otalk/stanza.io), она будет поддерживать оба, и вы просто будете думать о "XMPP", а не транспортный уровень, кроме настройки, когда вам нужно сообщить, к какой конечной точке подключиться.
(Вы не можете использовать "только веб-сайты" для чата - вы можете использовать веб файлы без XMPP, но на самом деле это означает, что вы изобретаете свой собственный протокол уровня приложения для чата, и вероятность того, что вы экономя много времени и головных болей, воспользовавшись работой, которая уже началась с написания одного с полезными свойствами (безопасность, идентификация, расширяемость и т.д.) и для которых существуют существующие библиотеки и серверы, перейдя на XMPP.)