2012-02-20 13 views
9

Pracuję nad WebApp przy użyciu backbone.js i socket.io po stronie klienta i Django po stronie serwera. Chciałbym zrobić "push" z serwera podczas zmiany danych (tak jak w aplikacji do czatu). Natknąłem dwa realizacji socket.io w Pythonie z integracji Django, który wyglądał obiecująco:Jaki jest najlepszy serwer socket.io do użytku z Django - gevent lub tornadio2?

Zarówno gevent, jak i tornado mają very good performance, więc nie interesują mnie inne asynchroniczne struktury połączeń. Jedynym wymaganiem jest użycie protokołu SSL dla połączenia - bez przesyłania zwykłego tekstu.

Pomiędzy tymi dwoma podejściami, które byłyby najłatwiejsze do wdrożenia? Czy istnieje dobry system oparty na subskrypcji dla tornadio2, podobny do tego, w jaki sposób django-socketio robi to dla gevent?

Inną opcją, z którą się zetknąłem, jest django-serverpush, która również bazuje na TornadIO2. Lepiej integruje się z Django niż z innymi aplikacjami TornadIO2, ale implementacja wymaga jeszcze poprawy, zanim stanie się gotowa do produkcji.

Odpowiedz

6

W chwili pisania tej odpowiedzi, django-socketio nie zostało w pełni zaktualizowane do pracy z najnowszym socket.io.

Z drugiej strony Tornado/TornadIO2 są dobrze utrzymane, a dzięki kilku niestandardowym rozszerzeniom mogłem je bardzo ładnie uruchomić. Po uruchomieniu produktu mam nadzieję poświęcić trochę czasu na modyfikacje mojego oprogramowania open source. Do tego czasu z chęcią odpowiem na wszelkie pytania dotyczące tego, jak uruchomić ten program.

1

Szczerze mówiąc, powiedziałbym, że są bardzo podobne. To jest bardziej opinia. Wydaje mi się, że gevent ma więcej wydajności w oparciu o to, co przeczytałem, ale powinieneś zrobić własne testy, aby dowiedzieć się, które ma najwyższą wydajność.

+0

Z moich badań wynika, że ​​ich wydajność jest porównywalna, więc nie będzie to czynnikiem. Bardziej przejmowałem się tym, jak mocno integrują się z Django, łatwiej się z nimi pracuje i są lepiej utrzymywane. –

+0

Poszedłbym z Django-SocketIO, gdybym był tobą. – stormlifter

Powiązane problemy