Django Каналы 2.x или Ajax? - PullRequest
       72

Django Каналы 2.x или Ajax?

2 голосов
/ 11 февраля 2020

У меня есть jQuery dataTable с большим количеством данных (более 10000 строк), которые могут использоваться / обновляться в режиме реального времени многими пользователями, и мне нужно, чтобы эта таблица обновлялась и постоянно обновлялась , Я пробовал с Ajax вызовами в 1 секунду, и я подумал, что это нехорошо, поскольку каждый пользователь отправляет Ajax запрос каждую секунду * 50 или более пользователей, и я думаю, что должно быть лучшее решение. Я думал об использовании Django каналов или что-то подобное (?), И мне было интересно, возможно ли это? По сути, мне нужно настроить своего рода слушателя на модель (базу данных) и получать новые данные об изменениях (то есть почти каждую секунду). Я хотел бы услышать мнение кого-то, кто имеет больше опыта, чем я. Заранее спасибо.

Ps. Мне сказали использовать для этого веб-сокеты.

1 Ответ

1 голос
/ 11 февраля 2020

Короче говоря, да будет предложен веб-сокет.

Если все обновления моделей, на которые вы хотите подписаться, производятся через Djangos ORM.

I предложил бы использовать (или вдохновляться) DjangoChannelsRestFramework в качестве отправной точки для подписки на несколько моделей в вашей базе данных.

Эта библиотека настроена, чтобы позволить вам подписаться на несколько типов объектов через одно соединение через веб-сокет и получайте сообщения ws всякий раз, когда их объекты изменяются. Он также предоставляет некоторые инструменты, позволяющие вам повторно использовать существующие представления DRF через веб-сокет.

Отказ от ответственности: я являюсь автором DjangoChannelsRestFramework.

...