Django-sockjs-торнадо в основному тонка оболонка на вершині sockjs-торнадо, який робить його мертвим просто написати додатках, заснованих на WebSocket на верхній частині бібліотеки емуляції sockjs WebSocket.
З цією оболонці ви в основному мають доступ до всього, ще потрібно від вашого проекту Django такі, як ваші моделі і ваших різних налаштувань.
Тому що вам потрібно, щоб запустити два процеси (по одному для runserver (або WSGI) і один SocketServer), це означає, що два дійсно є окремі процеси Python, так що ви не можете легко робити такі речі реєстрації сигналів і викликати їх в одному процесі і мати їх Пожежа в інший.
Початок роботи
Створіть клас десь, що виглядає приблизно так:
від sockjs.tornado імпорту SockJSConnection
клас MyConnection (SockJSConnection):
І NBSP; Def ON_OPEN (само запит):
І NBSP; передача
І NBSP; Def ON_MESSAGE (я, повідомлення):
І NBSP; передача
І NBSP; Def ON_CLOSE (само):
І NBSP; передача
Далі, вам потрібно поставити loction цього в обстановці у вашому settings.py щось на зразок цього:
SOCKJS_CLASSES = (
І NBSP; 'myproject.myapp.myfile.MyConnection',
)
Далі, щоб запустити сервер просто запустіть:
Python manage.py SocketServer [--help]
Ви як і раніше будете мати свій звичайного веб-сервера Django теж в окремому терміналі:
Python manage.py runserver
Тепер ви повинні бути в змозі написати соковитий Javascript використанням sockjs-клієнт. Ви можете почати, завантаживши останню зменшена версія від CDN.
Просте додаток може виглядати наступним чином:
носок = новий SockJS ('HTTP: // локальний: 9999 / відлуння');
sock.onmessage = функція (е) {
І NBSP; console.log (e.data);
};
sock.onclose = функція () {
І NBSP; console.log («закритим :( ');
};
sock.onopen = функція () {
І NBSP; console.log ('відкрив:>');
І NBSP; letTheMadnessBegin ();
};
Функція letTheMadnessBegin () {
І NBSP; // нерозумно, але ви отримаєте ідею
І NBSP; sock.send (JSON.stringify ({
І NBSP ;. Ім'я: $ ('# ім'я') текст (),
І NBSP; повідомлення :. $ ('Вхід') Val ()
& NBSP;}));
}
Отримання фантазії
Там же хуя більше речі, які ви можете зробити з цим звичайно. Наприклад, ви можете додати деяку форму аутентифікації. З ON_OPEN оброблювач одержує запит ви можете використовувати, щоб попросити request.get_cookie (), яка залишається читачеві як вправа.
Існує кілька більше фантазії приклад включені в цей пакет у прикладі, який могли б отримати деякі ідеї. Це повністю робочий чат додаток, який просто працює.
Цей пакет побудований в основному на Подавати дивовижну роботу Коваля на sockjs-торнадо, який має багато більше прикладів та документації, яка може вам допомогти. . Наприклад, в ньому перераховані у типовій конфігурації HAProxy, які ви, можливо, буде потрібно, як тільки ви берете ваш проект жити так як ви не можете тримати піддаючи порт 9999 на виробничої системи
Вимоги :
- Python
- Django
Коментар не знайдено