Django-sockjs-торнадо в основном тонкая оболочка на вершине sockjs-торнадо, который делает его мертвым легко писать приложения, основанные WebSocket на вершине библиотеки эмуляции sockjs WebSocket.
С этой обертки вы в основном имеют доступ ко всему, еще нужно от вашего проекта Django такие, как ваши модели и ваших различных настроек.
Потому что вам нужно, чтобы запустить два процесса (один для runserver (или WSGI) и один для SocketServer), это означает, что два действительно отдельные процессы питон так что вы не можете легко делать вещи, как регистрации сигналов и вызвать их в одном процессе и иметь их Пожар в другой.
Начало
Создайте класс где-то, что выглядит примерно так:
от 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 ",
)
Далее, чтобы запустить сервер просто запустите:
питон manage.py SocketServer [--help]
Вы по-прежнему будете иметь свой регулярный сервер Django тоже в отдельном терминале:
питон 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; сообщение:. $ ('вход') Вал ()
& NBSP;}));
}
Получение фантазии
Там же хуя больше вещей, которые вы можете сделать с этим конечно. Например, вы можете добавить некоторую форму аутентификации. Поскольку ON_OPEN обработчик получает запрос можно использовать, что, чтобы попросить request.get_cookie (), которая оставляется читателю в качестве упражнения.
Существует немного больше фантазии пример включен в этот пакет в соответствии примеру, который могли бы получить некоторые идеи. Это полностью работает чат приложение, которое просто работает.
Этот пакет построен в основном на Подавать удивительную работу Коваля на sockjs-торнадо, который имеет много больше примеров и документации, которая может вам помочь. . Например, в нем перечислены в типовой конфигурации HAProxy которой вы, возможно, потребуется, как только вы принять ваш проект жить так как вы не можете держать подвергая порт 9999 на производственной системы
Требования :
- Python
- Джанго
Комментарии не найдены