Krótka odpowiedź brzmi: „oba”.
XMPP to zestaw protokołów aplikacji do prowadzenia rozmów w czasie rzeczywistym (i wielu innych rzeczy, jeśli o to chodzi) - następnie musi zostać w jakiś sposób przesłany przez sieć, więc potrzebujesz powiązania transportowego. Istnieją trzy główne powiązania transportowe dla XMPP -
- TCP / IP, którego zwykle używa się w Internecie z natywnymi klientami na urządzeniach
- HTTP (zwany BOSH), który jest tradycyjnie używany podczas korzystania z XMPP w przeglądarce (ponieważ protokół TCP-IP nie jest dostępny dla aplikacji Javascript w przeglądarce)
- Websockets, których używa się podczas robienia XMPP w nowoczesnej przeglądarce.
Więc jeśli tworzysz aplikację do czatu w przeglądarce, wybierz XMPP jako protokół aplikacji i użyjesz websockets (w nowoczesnej przeglądarce) lub BOSH (w starszej przeglądarce) jako transportu sieciowego. Jeśli używasz biblioteki XMPP dla Javascript, takiej jak Stanza.io ( https://github.com/otalk/stanza.io ), będzie ona obsługiwać obie i będziesz po prostu myśleć o `` XMPP '', a nie o warstwie transportowej, inaczej niż podczas konfiguracji, kiedy musisz powiedzieć mu, z którym punktem końcowym ma się połączyć.
(Nie możesz używać `` tylko gniazd sieciowych '' do czatu - możesz używać gniazd internetowych bez XMPP, ale to naprawdę oznacza, że wymyślasz własny protokół warstwy aplikacji do czatu, a szanse, które zamierzasz zaoszczędzić dużo czasu i bólów głowy, wykorzystując pracę, która już została włożona w napisanie takiej, która ma przydatne właściwości (bezpieczeństwo, tożsamość, rozszerzalność itp.) i dla której istnieją istniejące biblioteki i serwery, zamiast tego przechodząc na XMPP.