2009-10-03 13 views
23

Zamierzam wdrażać Comet w Pythonie (mimo, że słyszę dobre rzeczy o erlycometach, nie jestem zachwycony wsparciem serwera sieciowego opartego na Erlangu, oprócz wszystkiego w naszym zapleczu). Znalazłem kilka możliwości:Najnowsza rekomendacja dla Comet w Pythonie?

(istnieją również inne możliwości tego interfejsu z serwerami Java, ale Nie jestem nimi zainteresowany)

Czy ktoś może przedstawić rekomendację wśród tych wdrożeń, biorąc pod uwagę wydajność, społeczność i łatwość implementacji?

+1

Możesz być także zainteresowany w odpowiedzi na to pytanie, które ma kilka innych możliwości: http://stackoverflow.com/questions/960969/python-comet-server –

+0

Dzięki! StreamHub wygląda na to, że wymaga Java? Dodałem jednak orbitę do tej listy. –

+1

Oto w pełni funkcjonalny przykład aplikacji Comet (przy użyciu Django + Orbited + Twisted) http://github.com/clemesha/hotdot – clemesha

Odpowiedz

8

Osobiście używam Orbited, zarówno dlatego, że używam już Twisted, jak i dlatego, że wydaje się być dojrzały. Twisted ma fajną długą historię z wieloma użytkownikami, szczególnie w porównaniu do Diesla i Tornada. Orbitowany jest rzeczywiście zbudowany na Twisted.

Istnieje dobry wpis na blogu obejmujący numer end-to-end orbit solution here. Wysyła dane ze skryptu Pythona do serwera STOMP (MorbidQ) do Orbited to Javascript - renderując te dane jako wykres.

Tornado wydaje się całkiem nowy na scenie, nie mogłem znaleźć skręconej komety i nie słyszałem o oleju napędowym. Szczególnie podoba mi się sposób, w jaki Orbite może przekazywać dowolne tcp/ip, ale ułatwia podłączanie klientów javascript do wiadomości przekazującej STAND w backend.

5

Polecam Orbite, jeśli chcesz napisać aplikację Comet.

Co sprawia, że ​​Kometa jest bardziej skomplikowana do wdrożenia (niż tworzenie aplikacji Ajax, powiedzmy), to że zarówno klient (klient javascript Comet), jak i serwer (asynchroniczny serwer WWW, taki jak Twisted) pracują wspólnie, a to to, co dostajesz z Orbited - zarówno klient javascript, jak i serwer.

Zarówno Tornado, jak i Diesel zawierają głównie część serwera async, ale brakuje ważnego kodu javascript klienta.

Plus, jest to całkiem dobry społeczność wokół orbicie, a kilka ludzie budują fajne aplikacje z nim, to strona pokazuje kilka z tych aplikacji: http://orbited.org/wiki/Sites

2

Mam również przy użyciu skręcony. Ale zamiast orbitu używam Nevow.Athena. To naprawdę proste: dowiedz się więcej na temat czytania LiveElement tutorial.

+1

Uwaga: strona divmod.org niedawno się zawiesiła i jest mało prawdopodobne, że kiedykolwiek wróci do trybu online. Wierzę, że najnowsza wersja tutoriala LiveElement znajduje się tutaj: http://web.archive.org/web/20101012035741/http://divmod.org/trac/wiki/DivmodNevow/Athena/Tutorials/LiveElement –

+0

Również, _some_ of stara dokumentacja Divmod znajduje się tutaj: http://divmodsphinx.funsize.net –

2

Czy osiadłeś na komecie? Dlaczego nie WebSockets? Jeśli jest to również opcja, chciałbym odnieść się do: https://github.com/tavendo/AutobahnPython, która implementuje WebSockets w Twisted (dokumentacja jest dostępna pod adresem http://autobahn.ws/python). Jest zgodny ze standardami, ma bazujący na wiadomościach podstawowy interfejs API i zaawansowany interfejs API do przetwarzania ramkowego/strumieniowego i wiele innych dodatków.

+0

WebSockets wymaga Flasha dla IE <9 – Lorenzo

+0

yes. również IE9 nie ma WS. Microsoft ma trochę WS beta, ale tylko dla Silverlight, do którego można uzyskać dostęp z JS - znowu jak obejście Flasha. Nie ma oficjalnych komunikatów dotyczących wsparcia WS przez MS - grają w gry na tym zbliżającym się standardzie, a także na WebGL. Do tego, co o tym myśleć;) – oberstet

+0

IE10 jest dostarczany z obsługą binarnych wiadomości WebSockets: http://www.tavendo.de/autobahn/testsuite.html – oberstet

1

Moja odpowiedź na this question stanowi przykład naciśnięciem serwera przy użyciu biblioteki autobahn który IMHO jest jak dotąd najbardziej przyjazny dla użytkownika ramy websocket zasilany przez skręcone. Dostępna jest również implementacja JS, a także Android.

Comet jest całkowicie zastąpione przez websocket i należy rozważyć użycie tego ostatniego, chyba że masz zamiar wspierania IE8 i starsze

Powiązane problemy