XMPP BOSH vs COMET

Chcę napisać aplikację do czatu w czasie rzeczywistym i muszę zdecydować, z jakich technologii korzystać.

Jakie są różnice między tymi technologiami i które preferujesz i dlaczego?

WebSockets nie jest opcją, ponieważ nie jest gotowy do walki w dziczy

Thanks

Author: Ahmet Recep Navruz, 2011-09-07

1 answers

Powinieneś przeczytać pytanie "Dlaczego BOSH nie jest bardziej popularny zwłaszcza jako alternatywa dla WebSockets i Long-ankiet". kanaka daje fantastyczną odpowiedź i jestem pewien, że rozwiąże twoje obawy dotyczące WebSockets. WebSocket są absolutnie "gotowi do walki w dziczy".

BOSH i Comet, moim zdaniem, to to samo. BOSH to skrót od "Bidirectional-streams Over Synchronous HTTP" i chociaż specyfikacja BOSH Stany:

BOSH, technologia zdefiniowana w tej specyfikacji, zasadniczo stanowi "drop-in" alternatywę dla długotrwałego, dwukierunkowego połączenia TCP. Jest to dojrzała, w pełni funkcjonalna technologia, która została szeroko wdrożona i wdrożona od 2004 roku. Według naszej wiedzy była to pierwsza z wielu podobnych technologii, które obecnie obejmują metodologię Comet sformalizowaną w protokole Bayeux, a także protokół Web Socket i Odwrotny HTTP.

I know for a fact serwery Comet istnieją od co najmniej 2001 roku, ponieważ pracowałem dla firmy (Caplin Systems ), która miała i nadal ma Serwer Comet.

Powodem, dla którego mówię, że są one tym samym, na podstawowym poziomie, jest to, że oba pierwotnie (patrz poniżej) opierały się na dwóch połączeniach HTTP. Pierwszy to kanał tylny, który jest albo długo utrzymywanym połączeniem strumieniowym HTTP, albo używanym do długiego sondowania HTTP. Drugie połączenie jest krótkotrwałe i służy do wysyłania polecenia takie jak żądania subskrypcji. Te dwa połączenia umożliwiły symulację komunikacji dwukierunkowej.

Tak więc, na podstawowym poziomie BOSH i Comet używają tych samych mechanizmów komunikacji serwera z klientem i klienta z serwerem (klient jest przeglądarką internetową lub innym obsługiwanym klientem sieciowym). Tam, gdzie BOSH różni się tym, że oferuje dodatkowe szczegóły w swoim protokole i został opracowany z myślą o XMPP. Każdy serwer Comet może być opracowany tak, aby spełniał standardy określone w BOSH spec.

To wszystko powiedziane, serwery Comet i BOSH bez wątpienia oferują alternatywne mechanizmy transportu. Obejmują one strumieniowanie HTTP, HTTP Long-Polling, standardowe http-Polling i WebSockets.

Tak więc, jeśli zależy ci na szczegółach dostarczanych przez BOSH i XMPP, prawdopodobnie powinieneś rozważyć stos technologii zbudowany z myślą o BOSH i XMPP. Jeśli chcesz wysyłać proste wiadomości, bez tego dodanego ładunku wbudowanego w BOSH i XMPP, lub jeśli chcesz zbudować twoja własna "wartość dodana" do własnego protokołu to coś oznaczonego jako serwer Comet jest prawdopodobnie lepszym rozwiązaniem.

Jeśli zdecydujesz się użyć istniejącego stosu technologii, a nie opracować rozwiązanie od podstaw, to jest bardzo prawdopodobne, że rozwiązanie będzie używać WebSockets były możliwe, ponieważ oferują one znormalizowany i skuteczny mechanizm komunikacji dwukierunkowej.

Zrobiłem moją pierwszą próbę realtime web technology stack diagram, który można zobaczyć poniżej. Mam nadzieję, że to trochę pomoże:

Realtime Web Technology Stack

Możesz znaleźć listę technologii czasu rzeczywistego tutaj.

 28
Author: leggetter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:09:20