Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 31, 2017 02:21:25

polin11
Зарегистрирован: 2013-05-02
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

Django VS NODE.js

Изучаю django, пишу простую игру крестики-нолики, игра серверная 2 пользователя.
Оба заходят на один url, пример localhost:8000/xio, видят игровое поле 3х3 (матрица 3х3), один пользователь
нажимает на ячейку с координатами допустим (1,1). Предположим на сервер ajax запросом (или каким-то другим способом) отправляются данные координаты.
Внимание вопрос, есть ли в django аналог команды допустим из среды node.js
(пакет socket.io команда socket.broadcast.emit() отправить всем сообщение, кроме отправителя), нужно чтобы информация (координаты ячейки)
отправилась второму игроку в браузер, тогда можно данные вообще не хранить на сервере.
Заранее благодарен

Офлайн

#2 Янв. 31, 2017 07:46:11

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Django VS NODE.js

Посмотрите в сторону https://channels.readthedocs.io/en/stable/
И советую вам разобраться чем отличается синхронный фреймворк от асинхронного и что такое Websockets. После этого будет намного проще.



Офлайн

#3 Янв. 31, 2017 09:11:40

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Django VS NODE.js

polin11
Джанга стандартно запускается посредством WSGI, это означает, что каждый Джанго-процесс запускаемый веб-сервером представляет собой вызываемый объект (класс с __call__ или обычную функцию), который постоянно находится в памяти (пока существует процесс) и вызывается веб-сервером при поступлении запроса от клиента. Получается такая цепочка: в момент запуска веб-сервер или сервер приложений типа uWsgi создает несколько процессов, каждый из которых предоставляет свой независимый экземпляр джанго-приложения. При этом происходит импорт всего, до чего Джанга сможет дотянуться, создание ОРМ-связок, подключение сигналов и т.д. После этого джанго-приложение не изменяет своего состояния. На каждый пользовательский запрос сервер-приложений выбирает свободный в данный момент процесс, и передает в специальный вызываемый объект HTTP-запрос и ждёт ответа.
Как видите, никакого способа спровоцировать выполнение этой цепочки в обратном направлении, чтобы процесс в котором запущено джанго-приложение как-то смог постучаться на веб-сервер нет, джанго-приложение это просто функция, она вызывается со стороны и отдает ответ.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version