1

Тема: django + tornado => chat

Бекенд на джанго. Система обміну повідомленнями на торнадо(websockets). Сайт складається з 4 сторінок: Головна, Про нас, Кімната 1(чат), Кімната 2 (чат). При вході в кімнату потрібно казати username який в цей момент часу є унікальним для кімнати.
Питання: як правильно подружити джанго і торнадо? Як бути портами і запитами переходу з джанго на торнадо і як навчити торнадо стукатись в бд джанго(щоб писати туди повідомлення). Як реалізувати авторизацію унікального імені(є ідея з сесіями на Редіс, але з редісом немає досвіду роботи тому не впевненний, було б круто почути від людини з досвідом якісь підказки).
Буду вдячний за будь які поради так як на даний момент зайшов в тупік.

2

Re: django + tornado => chat

Вибачте за питання не в тему, але вебсокети працюють зараз на всіх бравзерах?

3

Re: django + tornado => chat

http://kmike.ru/files/django-realtime.pdf

4 Востаннє редагувалося miroslav.chandler (31.01.2013 18:37:00)

Re: django + tornado => chat

Vo_Vik написав:

Вибачте за питання не в тему, але вебсокети працюють зараз на всіх бравзерах?

звичайно що ні.
якщо потрібна підтримка всіх браузерів, то використовують стек технологій для реал тайму.
в залежності від браузера, вибирають потрібний

напевно сама годна тулза, шо зараз є:
https://github.com/sockjs/sockjs-client

Подякували: MynameIS_Ros1

5

Re: django + tornado => chat

Для останнього ще треба ноду на сервері піднімати.

6

Re: django + tornado => chat

Vo_Vik написав:

Для останнього ще треба ноду на сервері піднімати.

https://github.com/MrJoes/sockjs-tornado

слайди вже бачив, читав, але якщо чесно мало що зрозумів. в будь якому разі дякую за відповіді)

7

Re: django + tornado => chat

MynameIS_Ros написав:
Vo_Vik написав:

Для останнього ще треба ноду на сервері піднімати.

https://github.com/MrJoes/sockjs-tornado

слайди вже бачив, читав, але якщо чесно мало що зрозумів. в будь якому разі дякую за відповіді)

на скільки знаю, вебсокети не проксіюються тим же нгінкосм.

https://github.com/kmike/tornado-slacker

8

Re: django + tornado => chat

тобто через tornado-slacker можна стукатись в бд джанги, я правильно зрозумів?

9

Re: django + tornado => chat

MynameIS_Ros написав:

тобто через tornado-slacker можна стукатись в бд джанги, я правильно зрозумів?

так, воно буде виконуватися в фоні і викликати калбек, тільки для данного лупу.(наскільки я зрозумів :) )

Подякували: MynameIS_Ros1

10

Re: django + tornado => chat

up.
є сайт на джанго. в бегкраунді - селері + редіс. по деяких подіях з боку селері або джанго треба кидати через вебсокети дані на відкриту сторінку в браузері.
трохи погуглив, почитав.

django channels, tornado, різні пакети - вибір великий.

питання - яке рішення зараз рекомендується?

11 Востаннє редагувалося Q-bart (04.01.2018 22:43:07)

Re: django + tornado => chat

Юзав django-channels і tornado.

Я за django-channels. Просто і зрозуміло. Tornado - дуже замутно включається. Тим більше, що tornado - це окремий фреймворк, для веб від пітону

12 Востаннє редагувалося ping (05.01.2018 08:05:50)

Re: django + tornado => chat

Q-bart написав:

Юзав django-channels і tornado.

Я за django-channels. Просто і зрозуміло. Tornado - дуже замутно включається. Тим більше, що tornado - це окремий фреймворк, для веб від пітону

ну так.
якщо я вірно зрозумів :
https://cdn-images-1.medium.com/max/1600/1*XNkEqNJJY6d4GoU7alpkXw.jpeg
https://blog.revolucija.hr/django-with- … 4d5535ab2b

а замість верхнього uWSGI ставимо сервер вебсокетів (не зрозумів, чому автор схеми обізвав його uWSGI ? )
ну і ще nginx  бере на себе роздачу статики

але я бачу плюси в такій архітектурі
- більш модульна - не сподобався торнадо - можна хоч Flask-SocketIO прикрутити. чи aiohttp.
- фактично наявний окремий сервер для вебсокетів, який можна використати і для інших аплікацій
- вища стійкість системи в цілому

а якою була  Ваша схема використання торнадо?
бо я знаходив і варіант, еоли торнадо виконує одразу роль wgsi сервера для джанго.:
http://django-tornado-websockets.readthedocs.io/en/latest/_images/django-tornado-websockets_functionning.svg
http://django-tornado-websockets.readth … en/latest/

такий варіант щось мене напружує , бо не маю досвіду використання торнадо в такій ролі  , а завжди ставив uWSGI  в якості сервера аплікацій.